find
của Linux command là một trong những lệnh quan trọng và tiện dụng nhất trong hệ thống Linux. Như tên cho thấy, nó có thể tìm các tệp trên PC Linux của bạn dựa trên khá nhiều điều kiện và biến số bạn đặt. Bạn có thể tìm tệp theo quyền, người dùng, nhóm, loại tệp, ngày, kích thước và các tiêu chí có thể có khác bằng cách sử dụng find
yêu cầu. Sau đây, chúng tôi hướng dẫn bạn cách tìm tệp trong Linux bằng find
lệnh.
find
Lệnh có sẵn trên hầu hết các bản phân phối Linux theo mặc định, vì vậy bạn không phải cài đặt gói cho nó.
Tìm tệp theo tên trong thư mục hiện tại
Cách rõ ràng nhất để tìm kiếm tệp là theo tên. Để tìm một tệp theo tên trong thư mục hiện tại, hãy chạy:
find . -name photo.png
Nếu bạn muốn tìm một tệp theo tên có cả chữ hoa và chữ nhỏ, hãy chạy:
find . -iname photo.png
Nếu bạn muốn tìm một tệp trong thư mục gốc, hãy đặt tiền tố tìm kiếm của bạn bằng sudo
, điều này sẽ cung cấp cho bạn tất cả các quyền cần thiết để làm như vậy và cả /
biểu tượng, thông báo cho Linux tìm kiếm trong thư mục gốc. Cuối cùng, -print
biểu thức hiển thị các thư mục của kết quả tìm kiếm của bạn. Nếu bạn đang tìm kiếm Gzip, bạn nhập:
sudo find / -name gzip -print
Tìm tệp trong thư mục cụ thể
Nếu bạn muốn tìm tệp trong một thư mục cụ thể như “/ home”, hãy chạy:
find /home -name filename.txt
Nếu bạn muốn tìm các tệp có phần mở rộng “.txt” trong thư mục “/ home”, hãy chạy:
find /home -name "*.txt"
Để tìm các tệp có tên là “test.txt” trong nhiều thư mục như “/ home” và “/ opt”, hãy chạy:
find /home /opt -name test.txt
Để tìm các tệp ẩn trong thư mục “/ home”, hãy chạy:
find /home -name ".*"
Để tìm một tệp duy nhất có tên “test.txt” và xóa nó, hãy chạy:
find /home -type f -name test.txt -exec rm -f {}
Để tìm tất cả các tệp trống trong thư mục “/ opt”, hãy chạy:
find /opt -type f -empty
Tìm thư mục bằng tên
Nếu bạn muốn tìm tất cả các thư mục có tên là “testdir” trong thư mục “/ home”, hãy chạy:
find /home -type d -name testdir
Để lưu trữ tất cả các thư mục trống trong “/ home”, hãy chạy:
find /home -type d -empty
Tìm tệp với các quyền nhất định
find
lệnh có thể được sử dụng để tìm các tệp có quyền cụ thể bằng cách sử dụng perm
tùy chọn.
Để tìm tất cả các tệp có quyền là “777” trong thư mục “/ home”, hãy chạy:
find /home -type f -perm 0777 -print
Để tìm tất cả các tệp mà không có quyền “777”, hãy chạy:
find . -type f ! -perm 777
Để tìm tất cả các tệp chỉ đọc, hãy chạy:
find /home -perm /u=r
Để tìm tất cả các tệp thực thi, hãy chạy:
find /home -perm /a=x
Để tìm tất cả các tệp tập hợp bit cố định có quyền là “553”, hãy chạy:
find /home -perm 1553
Để tìm tất cả các tệp bộ SUID, hãy chạy:
find /home -perm /u=s
Để tìm tất cả các tệp có quyền là “777” và thay đổi quyền của chúng thành “700”, hãy chạy:
find /home -type f -perm 0777 -print -exec chmod 700 {} ;
Tìm tệp và thư mục dựa trên ngày và giờ
Để tìm tất cả các tệp trong “/ opt” đã được sửa đổi 20 ngày trước đó, hãy chạy:
find /opt -mtime 20
Để tìm tất cả các tệp trong “/ opt” đã được truy cập hai mươi ngày trước đó, hãy chạy:
find /opt -atime 20
Để tìm tất cả các tệp trong “/ opt” đã được sửa đổi trước đó hơn 30 ngày và ít hơn 50 ngày sau:
find /opt -mtime +30 -mtime -50
Để tìm tất cả các tệp trong “/ opt” đã được thay đổi trong hai giờ qua, hãy chạy:
find /opt -cmin -120
Tìm tệp và thư mục dựa trên kích thước
Để tìm tất cả các tệp 10MB trong thư mục “/ home”, hãy chạy:
find /home -size 10M
Để tìm tất cả các tệp trong thư mục “/ home” lớn hơn 10MB và nhỏ hơn 50MB, hãy chạy:
find /home -size +10M -size -50M
Để tìm tất cả các tệp “.mp4” trong thư mục “/ home” có hơn 10MB và xóa chúng bằng một lệnh duy nhất, hãy chạy:
find /home -type f -name *.mp4 -size +10M -exec rm {} ;
Như bạn thấy, find
lệnh cực kỳ hữu ích để quản trị một hệ thống, xem qua các thư mục để tìm tệp và nói chung là cắt bớt cây thư mục ảo trong Linux. Nếu bạn thích bài viết này về Linux, hãy đảm bảo rằng bạn xem một số nội dung Linux khác của chúng tôi, chẳng hạn như cách sử dụng lệnh scp để chuyển tệp một cách an toàn, cách sử dụng nnn làm trình quản lý tệp trong thiết bị đầu cuối và cách sửa các gói bị hỏng.