35 ví dụ thực tế về lệnh find Linux

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.