Lệnh find Linux là một trong những lệnh quan trọng và handy nhất trong hệ thống Linux. Nó có thể, như tên gợi ý, tìm file trên PC Linux của bạn dựa trên hầu hết bất kỳ điều kiện và biến nào bạn set. Bạn có thể tìm file theo permission, user, group, file type, date, size và các tiêu chí có thể khác dùng lệnh find. Ở đây chúng tôi chỉ cho bạn cách tìm file trong Linux dùng lệnh find.
Lệnh find có sẵn trên hầu hết distro Linux mặc định, nên bạn không phải cài package cho nó.
Tìm File Theo Tên Trong Thư Mục Hiện Tại
Cách rõ ràng nhất để search file là theo tên. Để tìm file theo tên trong thư mục hiện tại, chạy:
find . -name photo.png
Nếu bạn muốn tìm file theo tên chứa cả chữ hoa và chữ thường, chạy:
find . -iname photo.png
Nếu bạn muốn tìm file trong root directory, prefix search của bạn với sudo, sẽ cho bạn tất cả permission cần thiết, và cũng symbol /, nói cho Linux biết search trong root directory. Cuối cùng, expression -print hiển thị thư mục của kết quả search. Nếu bạn tìm Gzip, bạn gõ:
sudo find / -name gzip -print
Tìm File Dưới Thư Mục Cụ Thể
Nếu bạn muốn tìm file dưới thư mục cụ thể như "/home", chạy:
find /home -name filename.txt
Nếu bạn muốn tìm file với extension ".txt" dưới thư mục "/home", chạy:
find /home -name "*.txt"
Để tìm file tên "test.txt" dưới nhiều thư mục như "/home" và "/opt", chạy:
find /home /opt -name test.txt
Để tìm hidden file trong thư mục "/home", chạy:
find /home -name ".*"
Để tìm một file đơn "test.txt" và xóa nó, chạy:
find /home -type f -name test.txt -exec rm -f {} \;
Để tìm tất cả file rỗng dưới thư mục "/opt", chạy:
find /opt -type f -empty
Tìm Thư Mục Dùng Tên
Nếu bạn muốn tìm tất cả thư mục tên "testdir" dưới thư mục "/home", chạy:
find /home -type d -name testdir
Để tìm tất cả thư mục rỗng dưới "/home", chạy:
find /home -type d -empty
Tìm File Với Permission Cụ Thể
Lệnh find có thể dùng để tìm file với permission cụ thể dùng option perm.
Để tìm tất cả file permission "777" trong thư mục "/home", chạy:
find /home -type f -perm 0777 -print
Để tìm tất cả file không có permission "777", chạy:
find . -type f ! -perm 777
Để tìm tất cả file read-only, chạy:
find /home -perm /u=r
Để tìm tất cả file executable, chạy:
find /home -perm /a=x
Để tìm tất cả sticky bit set file permission "553", chạy:
find /home -perm 1553
Để tìm tất cả SUID set file, chạy:
find /home -perm /u=s
Để tìm tất cả file permission "777" và đổi permission thành "700", chạy:
find /home -type f -perm 0777 -print -exec chmod 700 {} \;
Tìm File Và Thư Mục Dựa Trên Date Và Time
Để tìm tất cả file dưới "/opt" được modified 20 ngày trước, chạy:
find /opt -mtime 20
Để tìm tất cả file dưới "/opt" được accessed hai mươi ngày trước, chạy:
find /opt -atime 20
Để tìm tất cả file dưới "/opt" được modified hơn 30 ngày trước và ít hơn 50 ngày sau:
find /opt -mtime +30 -mtime -50
Để tìm tất cả file dưới "/opt" được changed trong hai giờ qua, chạy:
find /opt -cmin -120
Tìm File Và Thư Mục Dựa Trên Kích Thước
Để tìm tất cả file 10MB dưới thư mục "/home", chạy:
find /home -size 10M
Để tìm tất cả file dưới "/home" lớn hơn 10MB và nhỏ hơn 50MB, chạy:
find /home -size +10M -size -50M
Để tìm tất cả file ".mp4" dưới "/home" lớn hơn 10MB và xóa chúng bằng một lệnh, chạy:
find /home -type f -name *.mp4 -size +10M -exec rm {} \;
Như bạn thấy, lệnh find cực kỳ hữu ích cho administer hệ thống, lướt qua thư mục tìm file, và tổng quát prune virtual directory tree trong Linux. Nếu bạn thích bài Linux này, hãy xem thêm nội dung Linux khác, như cách dùng scp command transfer file an toàn, cách dùng nnn làm file manager trong terminal, và cách fix broken package.