Lệnh “Find” trên linux và một số ví dụ cơ bản

Công dụng của lệnh find

Lệnh find trong linux là một trong những công cụ quan trọng và hữu ích nhất trong hệ thống Linux. Với khả năng tìm kiếm tệp tin theo nhiều tiêu chí khác nhau như tên, loại, kích thước, thời gian sửa đổi, người sở hữu và nhiều tùy chọn khác, lệnh find giúp người dùng tìm kiếm các tệp tin một cách hiệu quả và nhanh chóng.

Ngoài ra, lệnh find trong linux còn hỗ trợ người dùng thực hiện các hành động trên các tệp tin được tìm thấy như xóa, sao chép, di chuyển hoặc đổi tên tệp tin. Điều này giúp người dùng tiết kiệm thời gian và nâng cao hiệu suất làm việc trong quá trình quản lý các tệp tin và thư mục trên hệ thống.

Với sự linh hoạt và khả năng tùy chỉnh cao, lệnh find trở thành một công cụ quan trọng không chỉ dành cho các lập trình viên, nhà quản trị hệ thống mà còn cho những người sử dụng máy tính đơn giản. Việc hiểu rõ cách sử dụng và tận dụng lệnh find trong linux sẽ giúp người dùng hệ thống Linux có được trải nghiệm tốt hơn và làm việc hiệu quả hơn trên nền tảng này.

Cú pháp của lệnh find

find [path] [options] [expression]

path: Đường dẫn thư mục bắt đầu tìm kiếm. Nếu không chỉ định, lệnh find sẽ tìm kiếm trong thư mục hiện tại.

options: Các tùy chọn để điều chỉnh quá trình tìm kiếm.

expression: Biểu thức tìm kiếm.

Cú pháp của lệnh find

Các tùy chọn phổ biến của lệnh find

-name: Tìm kiếm theo tên tệp tin.

-type: Tìm kiếm theo loại tệp tin (vd: -type f tìm kiếm tệp tin, -type d tìm kiếm thư mục).

-size: Tìm kiếm theo kích thước tệp tin (vd: -size +10M tìm kiếm tệp tin lớn hơn 10 megabytes).

-mtime: Tìm kiếm theo thời gian sửa đổi tệp tin (vd: -mtime +7 tìm kiếm các tệp tin đã sửa đổi trước hơn 7 ngày).

-user: Tìm kiếm theo tên người dùng sở hữu tệp tin.

-exec: Thực hiện một lệnh trên các tệp tin được tìm thấy (vd: -exec rm {} \; xóa tất cả các tệp tin được tìm thấy).

Ví dụ sử dụng lệnh find trong linux:

Phần 1. Tìm kiếm cơ bản

1. Tìm kiếm file theo tên file đầy đủ

find . danglee.txt

Kết quả:

./danglee.txt

Lệnh trên sẽ tìm file có tên là danglee.txt ( dấu . đại diện cho thư mục hiện hành).

2. Tìm kiếm file theo tên không đầy đủ.

find /  -name danglee*

Kết quả: 

/home/danglee1.php

/var/dangleeabc.rar

Lệnh trên sẽ tìm trên toàn bộ hệ thống file có tên bắt đầu bằng “danglee

3. Tìm kiếm file với phần mở rộng.

find /home -name  *.php

Kết quả:

/home/danglee.php

/home/admin/login.php

Lệnh trên sẽ tìm trong thư mục /home những file có tên bất kỳ, miễn nó có phần mở rộng là .php

4. Tìm kiếm file ẩn

find / -type f -name ".*"

5. Tìm kiếm file có owner là danglee

find /home -user danglee

Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có owner là danglee

6. Tìm kiếm file có group là danglee

find /home -group danglee

Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có group là danglee

7. Tìm kiếm file được phân quyền 777

find . -type f -perm 777

8. Tìm file chỉ có quyền read

find / -perm /u=r

9. Tìm kiếm file rỗng

find /tmp -type f -empty

10. Tìm kiếm file được chỉnh sửa trong vòng 50 ngày

find / -mtime 50

11. Tìm kiếm file được chỉnh sửa trong vòng 50 – 100 ngày

find / -mtime +50 –mtime -100

12. Tìm kiếm file vừa được tạo ra trong vòng 1 giờ

find / -cmin -60

13. Tìm kiếm file có dung lượng 50M

find / -size 50M

14. Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M

find / -size +50M -size -100M

15. Tìm thư mục có tên danglee

find / -type d -name danglee

16. Tìm kiếm trên nhiều thư mục

find /opt /usr /var -name danglee.txt -type f

Lệnh trên sẽ tìm kiếm trên các thư mục /opt /usr  /var  tập tin danglee.txt

Phần 2. Tìm kiếm nâng cao, kết hợp với lệnh khác (rm, exec, cp, grep,..)

17. Tìm và xoá file có dung lượng trên 100M

find / -size +100M -exec rm -rf {} \;

18. Tìm và chmod 644 file có phần mở rộng là .html

find /usr/local -name "*.html" -type f -exec chmod 644 {} \; 

19. Tìm file có phần mở rộng là .mp3 và copy file đó đến thư mục /tmp/MusicFiles

find . -type f -name "*.mp3" -exec cp {} /tmp/MusicFiles \;

20. Tìm file có chứa nội dụng danglee

find /home -type f -exec grep -l 'danglee' {} \;

21. Tìm file theo tên hoặc phần mở rộng hoặc kích thước (-o = OR)

find / \( -name '*.txt' -o -name 'doc*' -o -size +5M \)

Lệnh trên sẽ tìm những file có phần mở rộng là .txt hoặc những file có tên bắt đầu bằng doc hoặc những file có kích thước lớn hơn 5M.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *