Lệnh find là một trong những lệnh quan trọng và tiện dụng nhất trên hệ thống Linux.
Có thể tìm các file trên PC Linux dựa trên khá nhiều điều kiện và biến số bạn đặt. Bạn có thể tìm file theo quyền, người dùng, nhóm, loại file, ngày tháng, dung lượng và các tiêu chí có thể có khác bằng cách sử dụng lệnh find.
Phân loại
- f : file
- d: thư mục
- l : link
- c : các thiết bị phần cứng
Vd: muốn tìm trên hệ thống có bao nhiêu thiết bị phần cứng kết nối
find / -type cVd: muốn tìm kiếm trong thư mục /home có bao nhiêu file
find /home -type fVd: muốn tìm kiếm trong thư mục /home có bao nhiêu thư mục
find /home -type d
Dung lượng
Tìm kiếm theo dung lượng (size) ký tự đại diện cho từng size
- c: byte
- k : Kilobytes
- M : Megabytes
- G: Gigabytes
- b: 512-byte blocks
Vd: Tìm toàn bộ file có dung lượng đúng 100 byte trong thư mục home
find /home -size 100c
Vd: Tìm toàn bộ file có dung lương nhỏ hơn 100 byte trong thư mục home
find /home -size -100c
Vd: tìm một file trong thư mục /home có dung lượng lớn hơn 500M
find /home -size +500M
Thời gian
Trong phần tìm kiếm theo thời gian thì có 3 khái niệm sau :
- -atime : : Access Time : thời gian truy cập cuối cùng vào file
- -mtime: : Modification Time : thời gian chĩnh sửa cuối cùng của file
- -ctime : : Change Time : thời gian thay đổi file trên các inode
find / -mtime 1
Vd : tìm kiếm những file đã được truy cập cách đây 5 ngày
find / -atime 5
Chủ sở hữu
Đối với chủ sở hữu thì option có 2 lựa chọn:- user : -user
- group: -group
find /home -user "lienvu"
find /home -group "lienvu_group"
Thực thi các file được tìm kiếm
Một option việc tìm kiếm và xử lý kết quả
{} : tượng trưng cho những phần tử được tìm kiếm trùng khớp
\; : để cho biết command trên kết thúc
Vd: Tìm kiếm tất cả các file có perm là 664 thay thành 611 trong thư mục home
find /home -type f -perm 664 -exec chmod 611 {} \;Vd: Tìm kiếm tất cả các thư mục có perm 777 thay đổi thành 755 trong thư mục home
find /home -type d -perm 777 -exec chmod 755 {} \;
Ví dụ thực tế
Tìm kiếm file theo tên file đầy đủfind . lienvu.com.txt
find / -name lienvu*
Tìm kiếm file với phần mở rộng
find /home -name *.php
Tìm kiếm file ẩn
find / -type f -name ".*"
Tìm kiếm 1 tên file cụ thể
find / -name mongod.conf
Tìm kiếm file có owner là lienvu
find /home -user lienvu
Tìm kiếm file có group là lienvu
find /home -group lienvu
Tìm kiếm file được phân quyền 777
find . -type f -perm 777
Tìm file chỉ có quyền read
find / -perm /u=r
Tìm kiếm file rỗng
find /tmp -type f -empty
Tìm kiếm file được chỉnh sửa trong vòng 50 ngày
find / -mtime 50
Tìm kiếm file được chỉnh sửa trong vòng 50 - 100 ngày
find / -mtime +50 –mtime -100
Tìm và xóa file đã tạo trước 30 ngày
find /path/to/folder -type f -mtime +30 -delete
Quy tắc:
Dấu "+X" thể hiện lớn hơn X ngày
VD: Tìm các file được tạo trước 5 ngày
find /data/ -type f -mtime +5
Dấu "-X" thể hiện trong khoảng từ X ngày đến ngày hiện tại
VD: Tìm các file được tạo từ 5 ngày trước đến ngày hiện tại
find /data/ -type f -mtime -5
Không dấu thể hiện tìm đúng ngày:
VD: Tìm các file được tạo 5 ngày trước tính từ ngày hiện tại
find /data/ -type f -mtime 5
Tìm kiếm file vừa được tạo ra trong vòng 1 giờ
find / -cmin -60
Tìm kiếm file có dung lượng 50M
find / -size 50M
Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M
find / -size +50M -size -100M
Tìm thư mục có tên lienvu.com
find / -type d -name chiaseaz
Tìm kiếm trên nhiều thư mục
find /opt /usr /var -name lienvu.com.txt -type f
Tìm và xoá file có dung lượng trên 100M
find / -size +100M -exec rm -rf {} \;
Tìm và chmod 644 file có phần mở rộng là .html
find /usr/local -name "*.html" -type f -exec chmod 644 {} \;
Tìm file có phần mở rộng là .mp3 và copy file đó đến thư mục /data/music
find . -type f -name "*.mp3" -exec cp {} /data/music\;
Tìm file có chứa nội dụng lienvu.com
find /home -type f -exec grep -l 'lienvu.com' {} \;
Tìm file theo tên hoặc phần mở rộng hoặc kích thước (-o = OR)
find / \( -name '*.txt' -o -name 'doc*' -o -size +5M \)
Tìm file theo định dạng đuôi mở rộng
find . -type f -name '*.php' -printf '%TY-%Tm-%Td %TT %p\n' | sort
Nhận xét
Đăng nhận xét