Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
Một trong những câu lệnh mà các Sysadmin thường xuyên phải đối mặt trong công việc hằng ngày đó là tìm kiếm các tập tin hay thư mục trên server. Việc sử dụng thành thạo câu lệnh find
trong Linux là một vũ khí lợi hại giúp bạn quản lý hiệu quả các máy chủ. Dưới đây là những câu lệnh sử dụngfind
không thể thiếu đối với các Sysadmin:
Để tìm một thư mục hay tập tin theo tên sử dụng câu lệnh find
với option name
:
$ find -name "query"
Câu lệnh ở trên sẽ tìm kiếm tất cả các tập tin và thư mục với tên là query
. Câu lệnh này phân biệt giữa in hoa và in thường nên các file có tên là Query
sẽ không được trả về trong kết quả tìm kiếm.
Để tìm với tên nhưng không phân biệt in hoa in thường, chúng ta sử dụng option iname
:
$ find -iname "query"
Để chỉ tìm hoặc là tập tin hoặc là thư mục, chúng ta sử dụng option type
, ví dụ dưới sẽ chỉ tìm các tập tin:
$ find -type f
Để chỉ tìm các thư mục thay thế f
bởi d
trong câu lệnh ở trên.
$ find -type d
Có 3 loại thời gian chúng ta có thể dùng để tìm ra một file:
meta-data
của file thay đổi (như người dùng nào làm chủ file đó, loại file, file permission..)Có 3 option được sử dụng để tìm file tương ứng với 3 loại thời gian trên đó là: atime, mtime và ctime.
Ví dụ sau sẽ tìm các file được cập nhât cách đây một ngày:
$ find / -mtime 1
Để tìm các file được cập nhật từ một ngày trở lại thay giá trị 1
ở trên bằng -1
$ find / -mtime -1
Ngược lại, để tìm các file được cập nhật từ hơn một ngày thay giá trị này bằng +1
$ find / -mtime +1
Một số vd thông dụng liên quan tới lệnh find
Phần A, Tìm kiếm cơ bản
1. Tìm kiếm file được chỉnh sửa trong vòng 50 ngày
# find / -mtime 50
2. Tìm kiếm file được chỉnh sửa trong vòng 50 - 100 ngày
# find / -mtime +50 –mtime -100
3. Tìm kiếm file vừa được tạo ra trong vòng 1 giờ
# find / -cmin -60
4. Tìm kiếm file có dung lượng 50M
# find / -size 50M
5. Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M
# find / -size +50M -size -100M
6. Tìm thư mục có tên superdata
# find / -type d -name superdata
7. Tìm kiếm trên nhiều thư mục
# find /opt /usr /var -name superdata.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 superdata.txt
Phần B. Tìm kiếm nâng cao, kết hợp với lệnh khác (rm, exec, cp, grep,..)
8. Tìm và xoá file có dung lượng trên 100M
# find / -size +100M -exec rm -rf {} ;
9. Tìm và chmod 644 file có phần mở rộng là .html
# find /usr/local -name "*.html" -type f -exec chmod 644 {} ;
10. 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 ;
11. Tìm file có chứa nội dụng superdata
# find /home -type f -exec grep -l 'superdata' {} ;
12. 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.