Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách Tìm File Trong Linux Dùng Lệnh Find

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.