Giới thiệu
Lệnh find là một trong những lệnh mạnh mẽ của quản trị viên hệ thống Linux. Nó tìm kiếm các tệp và thư mục trong hệ thống phân cấp thư mục dựa trên một biểu thức do người dùng cung cấp và có thể thực hiện hành động do người dùng chỉ định trên mỗi tệp phù hợp.
Chúng ta có thể sử dụng lệnh find để tìm kiếm tệp và thư mục dựa trên quyền, loại, ngày, quyền sở hữu, kích thước và hơn thế nữa. Nó cũng có thể được kết hợp với các lệnh khác như grep hoặc sed.
Cú pháp câu lệnh find
Chú thích tham số lệnh find
:
[OPTIONS]
: Là các tùy chọn cho lệnhfind
.[path/to/folder]
: Là đường dẫn đến thư mục cần tìm kiếm tệp.[expression]
: Là mẫu tìm kiếm và các hành động được phân tách bằng các toán tử.
Tìm kiếm tệp theo đuôi mở rộng
Để tìm kiếm các tệp theo phần đuôi mở rộng bên trong một thư mục bất kì, chúng ta dùng lệnh sau:
Chú thích tham số lệnh find
:
-L
: Là tùy chọn tìm kiếm tệp theo liên kết tượng trưng./path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-name
: Tìm kiếm các tệp theo tên.*.html
: Chỉ tìm kiếm các tệp có phần đuôi mở rộng.html
.
Ví dụ: Để itìm kiếm các tệp có phần đuôi .php trong thư mục website chúng ta dùng lệnh như sau:
Tìm kiếm tệp theo tên
Tìm kiếm tệp theo tên có lẽ là cách sử dụng lệnh phổ biến nhất của lệnh find
. Để tìm kiếm một tệp theo tên của nó, chúng ta hãy sử dụng tùy chọn -name
theo sau là tên của tệp chúng ta đang tìm kiếm như sau.
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-type f
: Chỉ tìm kiếm các tệp trong thư mục.-name
: Tìm kiếm các tệp theo tên.filename
: Là tên tệp bạn cần tìm kiếm.
Ví dụ: Để tìm kiếm các tệp có tên index.php
trong thư mục /home/website
, bạn sẽ sử dụng lệnh sau:
Ngoài ra, chúng ta cũng có thể dùng lệnh find
để tìm kiếm các nội dung không phân biệt chữ hoa, chữ thường như sau:
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-type f
: Chỉ tìm kiếm các tệp trong thư mục.-iname
: Tìm kiếm các tệp theo tên không phân biệt chữ hoa, chữ thường.filename
: Là tên tệp bạn cần tìm kiếm.
Ví dụ: Để tìm kiếm các tệp có tên index.php
trong thư mục /home/website
, bạn sẽ sử dụng lệnh sau:
Ví dụ: Để tìm kiếm tất cả các tệp trong thư mục ~/home/website1/wp-admin/js
, chúng ta dùng lệnh sau:
Ví dụ: Để tìm kiếm tất cả các thư mục con bên trong trong thư mục ~/home/website1
, chúng ta dùng lệnh sau:
Tìm kiếm tệp theo kích thước
Để tìm kiếm các tệp dựa trên kích thước tệp, chúng ta hãy sử dụng tham số -size
cùng với kích thước tệp mà chúng ta mong muốn.
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-type f
: Chỉ tìm kiếm các tệp trong thư mục.-size
: Tìm kiếm các tệp theo kích thước mong muốn.fie-size
: Là kích thước của tệp cần tìm kiếm.
Ví dụ: Để tìm kiếm các tệp có kích thước chính xác 1234 byte
bên trong thư mục ~/home/website1
chúng ta dùng lệnh như sau:
Ví dụ: Để tìm kiếm tất cả các tệp có kích thước bé hơn 3kb bên trong thư mục làm việc hiện tại. Chúng ta sử dụng dấu trừ
(-
) trước giá trị kích thước như sau:
Ví dụ: Để tìm kiếm tất cả các tệp có kích thước lớn hơn 3kb bên trong thư mục làm việc hiện tại. Chúng ta sử dụng dấu cộng
(+
) trước giá trị kích thước như sau:
Tìm kiếm tệp theo thời gian sửa đổi
Lệnh find
cũng có thể tìm kiếm các tệp dựa trên thời gian sửa đổi gần đây nhất.
Tương tự như khi tìm kiếm theo kích thước, hãy sử dụng các ký hiệu cộng và trừ cho “lớn hơn” hoặc “nhỏ hơn”.
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-name
: Tìm kiếm các tệp theo tên.*.html
: Tìm kiếm các tệp có đuôi là.html
.-mtime x
: Là khoảng thời gian tệp được sửa đổi (tính bằngx
ngày).
Ví dụ: Để hiển thị các tệp có đuôi .txt
bên trong thư mục ~/home
được sửa đổi trong khoảng thời gian 3 ngày gần đây. Chúng ta dùng lệnh sau:
Tìm kiếm tệp theo thời gian sửa đổi với thời gian được xác định trước.
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-name
: Tìm kiếm các tệp theo tên.-mtime +n
: Là khoảng thời gian tệp được sửa đổi nhiều hơnn
ngày.-daystart
: Là ngày bắt đầu sửa đổi tệp.
Ví dụ: Tìm kiếm các tệp có thời gian sửa đổi lớn hơn 10 ngày trong thư mục ~/home
, chúng ta dùng lệnh như sau:
Tìm kiếm tệp theo phân quyền
Để tìm kiếm tệp theo phân quyền, chúng ta dùng lệnh find
với tùy chọn -perm
như sau:
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-perm
: Là tùy chọn tìm kiếm tệp theo phân quyền.permission
: Là số phân quyền bạn muốn tìm kiếm đối với tệp.
Ví dụ: Để tìm kiếm các tệp có phân quyền 644 bên trong thư mục ~/home/website1
chúng ta dùng lệnh như sau:
Tìm kiếm tệp theo chủ sở hữu
Để tìm kiếm các tệp theo chủ sở hữu, chúng ta dùng lệnh sau:
Chú thích tham số lệnh find
:
/path/to/folder
: Là đường dẫn đến thư mục cần tìm kiếm.-user
: Tìm kiếm tệp theo tên chủ sở hữu.name
: Là tên chủ sở hữu tệp.
Ví dụ: Để tìm kiếm các tệp có phân quyền chủ sở hữu là 123host
bên trong thư mục ~/home/website1
chúng ta dùng lệnh như sau:
Kết luận
Qua bài viết này chúng ta đã có thêm một số kiến thức cơ bản về lệnh find và có thể áp dụng lệnh find vào thực tế để tìm kiếm tệp và thư mục dựa trên quyền, loại, ngày, quyền sở hữu, kích thước và hơn thế nữa. Hi vọng bài hướng dẫn này sẽ giúp bạn làm việc hiệu quả hơn trên môi trường Linux.
Tính năng đang được phát triển