Lệnh find Linux là một trong những tiện ích dòng lệnh quan trọng và thường xuyên được sử dụng trong các hệ điều hành Unix-like. Lệnh find được sử dụng để tìm kiếm và xác định một danh sách các tệp tin và thư mục dựa trên các điều kiện bạn chỉ định, khớp với các đối số.
Lệnh find cung cấp một loạt lựa chọn đa dạng, cho phép người dùng tận dụng nó trong các điều kiện đa dạng. Nó cho phép cá nhân tìm kiếm các tệp tin dựa trên một loạt tiêu chí, bao gồm quyền hạn, người dùng, nhóm, loại tệp tin, ngày tháng, kích thước và các thông số khác.
Trong bài viết này, chúng tôi sẽ giới thiệu cho bạn 35 ví dụ thông thường nhất về lệnh find trong Linux. Chúng tôi đã chia phần này thành năm phần, bao gồm việc sử dụng lệnh find từ cơ bản đến nâng cao.
Phần I – Các lệnh find cơ bản để tìm tệp có tên
Khi đến việc tìm tệp tin theo tên cụ thể, lệnh find cung cấp một loạt các lựa chọn để tối ưu quá trình này. Đây là một số lệnh find cơ bản để tìm tệp tin dựa trên tên của chúng.
1. Tìm tệp bằng tên trong thư mục hiện tại
Tìm tất cả các tệp tin có tên là tecmint.txt trong thư mục làm việc hiện tại.
# find . -name tecmint.txt
./tecmint.txt
2. Tìm tập tin trong thư mục chính
Tìm tất cả các tệp tin trong thư mục /home có tên tecmint.txt.
# find /home -name tecmint.txt
/home/tecmint.txt
3. Tìm tệp bằng tên và bỏ qua chữ hoa chữ thường
Tìm tất cả các tệp tin có tên là tecmint.txt và chứa cả chữ hoa và thường trong thư mục /home.
# find /home -iname tecmint.txt
./tecmint.txt
./Tecmint.txt
4. Tìm thư mục bằng tên
Tìm tất cả các thư mục có tên là Tecmint trong thư mục /.
# find / -type d -name Tecmint
/Tecmint
5. Tìm tệp PHP bằng tên
Tìm tất cả các tệp tin php có tên là tecmint.php trong thư mục làm việc hiện tại.
# find . -type f -name tecmint.php
./tecmint.php
6. Tìm tất cả các file PHP trong thư mục
Tìm tất cả các tệp tin php trong một thư mục.
# find . -type f -name "*.php"
./tecmint.php
./login.php
./index.php
Phần II – Tìm tệp dựa trên quyền của chúng
Đây là một số ví dụ về lệnh find để tìm các tệp tin dựa trên quyền hạn của chúng.
7. Tìm file có quyền 777
Tìm tất cả các tệp tin có quyền hạn là 777.
# find . -type f -perm 0777 -print
8. Tìm tập tin không có quyền 777
Tìm tất cả các tệp tin không được phép 777.
# find / -type f ! -perm 777
9. Tìm file SGID có quyền 644
Tìm tất cả các tệp tin SGID bit có quyền hạn được thiết lập là 644.
# find / -perm 2644
10. Tìm tập tin Sticky Bit với quyền 551
Tìm tất cả các tệp tin Thẻ dính được thiết lập quyền hạn là 551.
# find / -perm 1551
11. Tìm tệp SUID
Tìm tất cả tệp tin được thiết lập SUID.
# find / -perm /u=s
12. Tìm tệp SGID
Tìm tất cả tệp tin được thiết lập SGID.
# find / -perm /g=s
13. Tìm tệp chỉ đọc
Tìm tất cả các tệp tin chỉ đọc Read-Only.
# find / -perm /u=r
14. Tìm tập tin thực thi
Tìm tất cả các tệp tin thực thi Executable.
# find / -perm /a=x
15. Tìm file có quyền 777 và Chmod thành 644
Tìm tất cả các tệp tin quyền hạn 777 và sử dụng lệnh chmod để đặt quyền hạn thành 644.
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
16. Tìm thư mục có quyền 777 và Chmod thành 755
Tìm tất cả các thư mục quyền hạn 777 và sử dụng lệnh chmod để đặt quyền hạn thành 755.
# find / -type d -perm 777 -print -exec chmod 755 {} \;
17. Tìm và xóa một tập tin
Để tìm một tệp tin duy nhất được gọi là tecmint.txt và xóa nó.
# find . -type f -name "tecmint.txt" -exec rm -f {} \;
18. Tìm và xóa nhiều tệp
Để tìm và xóa nhiều tệp tin như .mp3 hoặc .txt, sau đó sử dụng.
# find . -type f -name "*.txt" -exec rm -f {} \;
OR
# find . -type f -name "*.mp3" -exec rm -f {} \;
19. Tìm tất cả các tệp trống
Tìm tất cả các tệp tin rỗng trong một đường dẫn cụ thể.
# find /tmp -type f -empty
20. Tìm tất cả các thư mục trống
Tìm tất cả các thư mục rỗng trong một đường dẫn cụ thể.
# find /tmp -type d -empty
21. File tất cả các file ẩn
Tìm tất cả các tệp tin ẩn, sử dụng lệnh dưới đây.
# find /tmp -type f -name ".*"
Phần III – Tìm kiếm tệp dựa trên chủ sở hữu và nhóm
Đây là một số ví dụ của lệnh find để tìm các tệp tin dựa trên chủ sở hữu và nhóm:
22. Tìm một tệp dựa trên người dùng
Để tìm tất cả các tệp tin hoặc một tệp tin duy nhất có tên tecmint.txt trong thư mục gốc của chủ sở hữu là root.
# find / -user root -name tecmint.txt
23. Tìm tất cả các tệp dựa trên người dùng
Để tìm tất cả các tệp tin thuộc sở hữu của người dùng Tecmint trong thư mục /home.
# find /home -user tecmint
24. Tìm tất cả các tệp dựa trên nhóm
Để tìm tất cả các tệp tin thuộc sở hữu của nhóm Developer trong thư mục /home.
# find /home -group developer
25. Tìm tập tin cụ thể của người dùng
Để tìm tất cả các tệp tin .txt của người dùng Tecmint trong thư mục /home.
# find /home -user tecmint -iname "*.txt"
Phần IV – Tìm tệp và thư mục dựa trên ngày và giờ
Đây là một số ví dụ về lệnh find để tìm kiếm các tệp tin và thư mục dựa trên ngày và thời gian.
26. Tìm tệp đã sửa đổi trong 50 ngày qua
Để tìm tất cả các tệp tin được sửa đổi 50 ngày trước.
# find / -mtime 50
27. Tìm tệp được truy cập trong 50 ngày qua
Để tìm tất cả các tệp tin đã truy cập 50 ngày trước.
# find / -atime 50
28. Tìm các tệp đã sửa đổi trong 50-100 ngày qua
Để tìm tất cả các tệp tin được sửa đổi cách đây hơn 50 ngày và nhỏ hơn 100 ngày.
# find / -mtime +50 –mtime -100
29. Tìm các tập tin đã thay đổi trong 1 giờ qua
Để tìm tất cả các tệp tin được thay đổi trong 1 giờ trước.
# find / -cmin -60
30. Tìm tệp đã sửa đổi trong 1 giờ qua
Để tìm tất cả các tệp tin được sửa đổi trong 1 giờ trước.
# find / -mmin -60
31. Tìm tệp đã truy cập trong 1 giờ qua
Để tìm tất cả các tệp tin đã truy cập trong 1 giờ trước.
# find / -amin -60
Phần V – Tìm tệp và thư mục dựa trên kích thước
Đây là một số ví dụ về lệnh find để tìm kiếm các tệp tin và thư mục dựa trên kích thước.
32. Tìm tập tin 50MB
Để tìm tất cả các tệp tin có kích thước 50MB, sử dụng.
# find / -size 50M
33. Tìm Size trong khoảng 50MB – 100MB
Để tìm tất cả các tệp tin lớn hơn 50MB và nhỏ hơn 100MB.
# find / -size +50M -size -100M
34. Tìm và xóa tệp 100 MB
Để tìm tất cả các tệp tin 100MB và xóa chúng bằng một lệnh.
# find / -type f -size +100M -exec rm -f {} \;
35. Tìm tập tin cụ thể và xóa
Tìm tất cả các tệp tin .mp3 lớn hơn 10MB và xóa chúng bằng một lệnh.
# find / -type f -name *.mp3 -size +10M -exec rm {} \;
Sau khi khám phá qua 35 ví dụ thực tế về lệnh find trong Linux, ta nhận ra rằng khả năng đa dạng và mạnh mẽ của lệnh find không giới hạn chỉ trong việc tìm kiếm tệp tin và thư mục. Từ việc tìm kiếm dựa trên tên tệp, quyền truy cập, định dạng, đến việc thực hiện các hành động như xóa hoặc di chuyển tệp tin, lệnh find là một công cụ linh hoạt và mạnh mẽ cho các nhà quản trị hệ thống và nhà phát triển phần mềm. Với khả năng điều chỉnh linh hoạt và sức mạnh trong việc thao tác trên các tệp tin và thư mục, lệnh find tiếp tục là một phần quan trọng của hệ thống Linux và một công cụ hữu ích cho mọi người làm việc trong môi trường dòng lệnh.