07/09/2018, 11:08

Linux: Sử dụng câu lệnh find để tìm kiếm thư mục và tập tin

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ụngfindkhông ...

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ụngfindkhông thể thiếu đối với các Sysadmin:

Tìm Theo Tên

Để 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"

Tìm Theo Loại

Để 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

Tìm Theo Thời Gian

Có 3 loại thời gian chúng ta có thể dùng để tìm ra một file:

  • Access time: Thời gian mà file được đọc hay viết
  • Modification time: Thời gian mà file được cập nhật
  • Change time: Thời gian mà thông tin 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, mtimectime.

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
Lưu ý: Linux sử dụng hệ thống file system trong đó mọi thứ đều được coi là là một file (ngay cả một thư mục cũng là một dạng file đặc biệt mà nội dung của nó là các file khác: thư mục hoặc file). Hệ điều hành Linux theo dõi và lưu trữ thông tin thời gian một file được cập nhật (modification) thay vì thời giam mà file được tạo ra.
0