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á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.