Dù bạn là một người mới bắt đầu hay là một người dùng Linux kinh nghiệm, việc nắm vững cách sử dụng lệnh Find sẽ giúp bạn dễ dàng xác định vị trí của những tập tin cần tìm và thực hiện các tác vụ quản lý hệ thống một cách hiệu quả. Trong bài viết hôm nay, TinoHost sẽ hướng dẫn bạn cách sử dụng lệnh Find trên Linux hiệu quả.
Tìm hiểu về lệnh Find trên Linux
Giới thiệu lệnh Find trên Linux
Lệnh Find trên Linux là một công cụ dòng lệnh mạnh mẽ được sử dụng để tìm kiếm các tập tin và thư mục dựa trên các tiêu chí cụ thể, bao gồm tìm kiếm theo tên tập tin, kích thước, ngày tạo, quyền truy cập và nhiều tiêu chí khác. Nhìn chung, Find sẽ giúp bạn thực hiện các tác vụ như tìm kiếm tệp tin cụ thể, xóa các tệp lớn hơn một giới hạn kích thước, thực hiện các tác vụ xử lý hàng loạt và nhiều công việc khác liên quan đến quản lý tệp tin và thư mục.
Ví dụ: Bạn muốn tìm kiếm một thứ gì đó trong ổ cứng mà không nhớ ở đâu, tên cụ thể là gì hay làm sao tìm ra file giữa quá nhiều file khá giống nhau? Tất cả những rắc rối đó sẽ được giải quyết bằng lệnh Find trên Linux.
Cấu trúc của lệnh Find
Về cơ bản, chúng ta sẽ sử dụng cấu trúc chung như sau:
find [đường_dẫn] [tùy_chọn] [tiêu_chí_tìm_kiếm]
Trong đó:
- [đường_dẫn]: Đây là đường dẫn mà bạn muốn bắt đầu tìm kiếm từ. Bạn có thể chỉ định thư mục cụ thể hoặc sử dụng “.” để chỉ thư mục hiện tại. Nếu không có đường dẫn được chỉ định, mặc định là thư mục hiện tại.
- [tùy_chọn]: Đây là các tùy chọn mà bạn muốn sử dụng để tùy chỉnh cách lệnh “find” hoạt động. Có rất nhiều tùy chọn khác nhau để xác định các tiêu chí tìm kiếm, như tên tập tin, kích thước, ngày tạo, quyền truy cập và nhiều loại tùy chọn khác.
- [tiêu_chí_tìm_kiếm]: Đây là nơi bạn xác định các tiêu chí cụ thể cho quá trình tìm kiếm. Điều này bao gồm các điều kiện về tên tập tin, kích thước, quyền truy cập, ngày tạo và nhiều yếu tố khác.
Lợi ích của lệnh Find trên Linux
Tìm kiếm tập tin và thư mục theo tiêu chí
Lệnh Find cho phép bạn tìm kiếm các tập tin và thư mục dựa trên các tiêu chí cụ thể như tên tập tin, kích thước, quyền truy cập, ngày tạo và nhiều yếu tố khác. Điều này giúp bạn nhanh chóng định vị các tập tin và thư mục cần thiết trong hệ thống.
Quản lý tệp tin và thư mục một cách hiệu quả
Với khả năng tìm kiếm theo nhiều tiêu chí khác nhau, lệnh Find cho phép bạn thực hiện các tác vụ quản lý tệp tin và thư mục một cách hiệu quả hơn. Bạn có thể tìm và xóa các tệp lớn, di chuyển hoặc sao chép những tập tin cụ thể và thậm chí thực hiện các tác vụ xử lý hàng loạt trên tập tin.
Tìm kiếm và thay thế thông tin trong tập tin văn bản
Lệnh Find có thể kết hợp với các lệnh khác như Sed để thực hiện tìm kiếm và thay thế thông tin trong các tệp văn bản. Điều này rất hữu ích khi bạn cần cập nhật thông tin hoặc thực hiện thay đổi hàng loạt trong các tệp văn bản.
Tìm kiếm và xử lý các tệp ẩn
Lệnh Find cho phép bạn tìm kiếm và làm việc với các tập tin ẩn (có tên bắt đầu bằng dấu chấm) mà không cần phải biết trước tên cụ thể của chúng.
Tìm kiếm trên toàn bộ hệ thống
Bạn có thể sử dụng lệnh Find để tìm kiếm trên toàn bộ hệ thống Linux, bao gồm cả các ổ đĩa và thư mục khác nhau. Điều này giúp bạn định vị tập tin và thư mục một cách tổng quan và toàn diện.
Hướng dẫn sử dụng lệnh Find trên Linux
Để dễ dàng đọc hiểu hơn, chúng ta sẽ “quy định riêng” cách viết trong khuôn khổ bài viết này như sau nhé!
- Tiêu đề: hiển thị nhóm lệnh có cùng một điểm chung
- Dòng chữ có đánh số: hiển thị nội dung của code bên dưới
- Code dùng để tìm kiếm
Tìm kiếm cơ bản
1. Tìm kiếm file theo tên file đầy đủ
# find . tinogroup.txt
Kết quả:
./tinogroup.txt
Lệnh trên sẽ tìm file có tên là tinogroup.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 tinogroup*
Kết quả:
/home/tinogroup1.php
/var/tinogroupabc.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 “tinogroup”
3. Tìm kiếm file với phần mở rộng.
# find /home -name *.php
Kết quả:
/home/tinogroup.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 ".*"
Tìm kiếm dựa trên phân quyền và nhóm quyền
5. Tìm kiếm file thuộc sở hữu của tinogroup
# find /home -user tinogroup
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có chủ sở hữu là tinogroup
6. Tìm kiếm file có group là tinogroup
# find /home -group tinogroup
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có group là tinogroup
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
Tìm kiếm dựa trên thời gian
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
Tìm kiếm dựa trên dung lượng
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 tinogroup
# find / -type d -name tinogroup
16. Tìm kiếm trên nhiều thư mục
# find /opt /usr /var -name tinogroup.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 tinogroup.txt
17. Tìm và xóa file có dung lượng trên 100M
# find / -size +100M -exec rm -rf {} \;
Tìm kiếm dựa trên phần mở rộng/ nội dung
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 dung tinogroup
# find /home -type f -exec grep -l ‘tinogroup’{} \;
Với khả năng tìm kiếm tuyệt vời, lệnh Find đã thành một người bạn đồng hành đáng tin cậy của người dùng Linux. Qua bài viết trên, TinoHost đã hướng dẫn sử dụng lệnh Find trên Linux chi tiết. Hy vọng bạn sẽ sử dụng câu lệnh chính xác và có được kết quả mong muốn nhé!
Những câu hỏi thường gặp
Làm thế nào để tìm tệp có quyền 777 và Chmod đến 644?
Bạn có thể sử dụng lệnh:
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
Chmod 755, 777 là gì?
Chmod là xác lập thuộc tính cho files hoặc folder. Hiểu đơn giản, Chmod là thiết lập quyền (xem, xóa …) trên file hay thư mục. Để tìm hiểu thêm về Chmod 755 và 777, bạn có thể xem bài viết: CHMOD 755, 777 là gì? Sử dụng CHMOD 755, 777 ra sao?
Làm thế nào để tìm các tệp dựa trên kích thước? Ví dụ: lớn hơn 1MB.
Bạn sẽ sử dụng lệnh sau:
# find /đường/dẫn/đến/thư/mục -type f -size +1M
Có lệnh nào thay thế lệnh Find trên Linux
Lệnh Find trong Linux rất mạnh mẽ và linh hoạt trong việc tìm kiếm và xử lý các tệp và thư mục. Tuy nhiên, trong một số trường hợp cụ thể, có thể sử dụng các lệnh khác để thay thế một phần chức năng của Find như: Lệnh locate, lệnh ls , lệnh grep, lệnh which và whereis, Lệnh tree.