Linux Commands for Beginners 16 - Output Redirection
Mục lục:
- Linux
findlệnh Cú pháp - Tìm tập tin theo tên
- Tìm tệp theo tiện ích mở rộng
- Tìm tệp theo loại
- Tìm tập tin theo kích thước
- Tìm tệp theo ngày sửa đổi
- Tìm tập tin theo quyền
- Tìm tập tin theo chủ sở hữu
- Tìm và xóa tập tin
- Phần kết luận
Lệnh
find
là một trong những công cụ mạnh nhất trong kho vũ khí 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 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.
Bạn có thể sử dụng lệnh
find
để tìm kiếm các 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 sử dụng kết hợp với các công cụ khác như
grep
hoặc
sed
.
Linux
find
lệnh Cú pháp
Cú pháp chung cho lệnh
find
như sau:
find
- Thuộc tính
optionskiểm soát việc xử lý các liên kết tượng trưng, tùy chọn gỡ lỗi và phương thức tối ưu hóa. Thuộc tínhpath…xác định thư mục bắt đầu hoặc thư mục nơi find sẽ tìm kiếm tệp. Thuộc tínhexpressionđược tạo thành từ các tùy chọn, mẫu tìm kiếm và hành động được phân tách bởi các nhà khai thác.
Để tìm kiếm các tập tin trong một thư mục, người dùng gọi lệnh
find
cần phải có quyền đọc trên thư mục đó.
Hãy xem ví dụ sau:
find -L /var/www -name "*.js"
- Tùy chọn
-L(tùy chọn) cho biết lệnhfindđể theo các liên kết tượng trưng./var/www(đường dẫn) chỉ định thư mục sẽ được tìm kiếm. (Biểu thức)-name "*.jscho biếtfindkiếm các tệp kết thúc bằng.js(tệp JavaScript).
Tìm tập tin theo tên
Tìm tập tin theo tên có lẽ là cách sử dụng phổ biến nhất của lệnh
find
. Để tìm một tệp theo tên của nó, tùy chọn
-name
theo tên của tệp bạn đang tìm kiếm.
Ví dụ: để tìm kiếm một tệp có tên
document.pdf
trong thư mục
/home/linuxize
bạn sẽ sử dụng lệnh sau:
find /home/linuxize -type f -name document.pdf
Để chạy tìm kiếm không phân biệt chữ hoa chữ thường, hãy thay đổi tùy chọn
-name
bằng
-iname
:
find /home/linuxize -type f -iname document.pdf
Lệnh ở trên sẽ khớp với Tài liệu.p.p trực tiếp, DOC DOCENTENT.pdf trực tiếp..v.v.
Tìm tệp theo tiện ích mở rộng
Tìm kiếm tệp theo tiện ích mở rộng cũng giống như tìm kiếm tệp theo tên. Ví dụ: để tìm tất cả các tệp kết thúc bằng
.log.gz
trong thư mục
/var/log/nginx
bạn có thể sử dụng:
find /var/log/nginx -type f -name '*.log.gz'
Điều quan trọng cần đề cập là khi bạn sử dụng ký tự đại diện, bạn phải trích dẫn mẫu hoặc thoát biểu tượng dấu hoa thị
*
bằng dấu gạch chéo ngược
\
để nó không bị dịch bởi vỏ.
Để tìm tất cả các tệp không khớp với regex
*.log.gz
bạn có thể sử dụng tùy chọn
*.log.gz
. Ví dụ: để tìm tất cả các tệp không kết thúc bằng
*.log.gz
bạn sẽ sử dụng:
find /var/log/nginx -type f -not -name '*.log.gz'
Tìm tệp theo loại
Đôi khi bạn có thể cần tìm kiếm các loại tệp cụ thể như tệp bình thường, thư mục hoặc liên kết tượng trưng. Trong Linux, mọi thứ đều là một tệp.
Để tìm kiếm các tệp dựa trên loại của chúng, hãy sử dụng tùy chọn
-type
và một trong các mô tả sau để chỉ định loại tệp:
-
f: một tệp thông thườngd: thư mụcl: liên kết tượng trưngc: thiết bị ký tựb: thiết bị khốip: tên ống (FIFO)s: socket
Ví dụ, để tìm tất cả các thư mục trong thư mục làm việc hiện tại, bạn sẽ sử dụng:
find. -type d
Ví dụ phổ biến là thay đổi đệ quy quyền truy cập tệp trang web thành
644
và quyền thư mục thành
755
bằng
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Tìm tập tin theo kích thước
Để tìm tệp dựa trên kích thước tệp, hãy chuyển tham số
-size
cùng với tiêu chí kích thước. Bạn có thể sử dụng các hậu tố sau để chỉ định kích thước tệp:
-
b: Khối 512 byte (mặc định)c: bytew: từ hai bytek: KilobytesM: MegabyteG: Gigabyte
Lệnh sau sẽ tìm tất cả các tệp có độ chính xác
1024
byte trong
/tmp
:
find /tmp -type f -size 1024c
Lệnh
find
cũng cho phép bạn tìm kiếm các tệp lớn hơn hoặc nhỏ hơn kích thước đã chỉ định.
Trong ví dụ sau, chúng tôi đang tìm kiếm tất cả các tệp nhỏ hơn
1MB
trong thư mục làm việc hiện tại. Lưu ý dấu trừ
-
ký hiệu trước giá trị kích thước:
find. -type f -size -1M
find. -type f -size +1M
Bạn thậm chí có thể tìm kiếm các tập tin trong một phạm vi kích thước. Lệnh sau sẽ tìm tất cả các tệp trong khoảng từ
1
đến
2MB
:
find. -type f -size +1M -size 21M
Tìm tệp theo ngày sửa đổi
Lệnh
find
cũng có thể tìm kiếm các tệp dựa trên lần sửa đổi, truy cập hoặc thay đổi thời gian cuối cùng của chúng.
Tương tự như khi tìm kiếm theo kích thước, hãy sử dụng các biểu tượng dấu cộng và dấu trừ cho nhóm lớn hơn so với phạm vi hoặc ít hơn so với.
Giả sử vài ngày trước, bạn đã sửa đổi một trong các tệp cấu hình dovecot, nhưng bạn đã quên cái nào. Bạn có thể dễ dàng lọc tất cả các tệp trong thư mục
/etc/dovecot/conf.d
kết thúc bằng
.conf
và đã được sửa đổi trong năm ngày qua với:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Dưới đây là một ví dụ khác về việc lọc các tệp dựa trên ngày sửa đổi bằng cách sử dụng tùy chọn
-daystart
. Lệnh bên dưới sẽ liệt kê tất cả các tệp trong thư mục
/home
đã được sửa đổi
30
trở lên:
find /home -mtime +30 -daystart
Tìm tập tin theo quyền
Tùy chọn
-perm
cho phép bạn tìm kiếm tệp dựa trên quyền của tệp.
Ví dụ: để tìm tất cả các tệp có quyền chính xác
775
trong thư mục
/var/www/html
, bạn sẽ sử dụng:
find /var/www/html -perm 644
Bạn có thể thêm tiền tố vào chế độ số bằng dấu trừ
-
hoặc dấu gạch chéo
/
.
Khi dấu gạch chéo
/
được sử dụng làm tiền tố, thì ít nhất một danh mục (người dùng, nhóm hoặc người khác) phải có ít nhất các bit tương ứng được đặt cho một tệp phù hợp.
Hãy xem xét lệnh ví dụ sau:
find. -perm /444
Lệnh trên sẽ khớp tất cả các tệp có quyền đọc được đặt cho người dùng, nhóm hoặc người khác.
Nếu dấu trừ
-
được sử dụng làm tiền tố thì tệp phải khớp với ít nhất các bit đã chỉ định phải được đặt. Lệnh sau sẽ tìm kiếm các tệp có quyền đọc và ghi cho chủ sở hữu và nhóm và người dùng khác có thể đọc được:
Tìm tập tin theo chủ sở hữu
Để tìm các tệp thuộc sở hữu của một người dùng hoặc nhóm cụ thể, hãy sử dụng tùy chọn
-user
và
-group
.
Ví dụ: để tìm kiếm tất cả các tệp và thư mục thuộc sở hữu của người dùng
linuxize
, bạn sẽ chạy:
find / -user linuxize
Đây là một ví dụ thực tế. Giả sử bạn muốn tìm tất cả các tệp thuộc sở hữu của
www-data
người dùng và thay đổi quyền sở hữu của các tệp phù hợp từ
www-data
thành
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Tìm và xóa tập tin
Để xóa tất cả các tệp phù hợp, hãy thêm tùy chọn
-delete
vào cuối biểu thức khớp.
Đảm bảo bạn chỉ sử dụng tùy chọn này khi bạn tự tin rằng kết quả khớp với các tệp bạn muốn xóa. Luôn luôn là một ý tưởng tốt để in các tệp phù hợp trước khi sử dụng tùy chọn
-delete
.
Ví dụ: để xóa tất cả các tệp kết thúc bằng
.temp
khỏi
/var/log/
bạn sẽ sử dụng:
find /var/log/ -name `*.temp` -delete
Sử dụng tùy chọn
-delete
hết sức thận trọng. Dòng lệnh find được đánh giá là một biểu thức và nếu bạn thêm tùy chọn
-delete
trước, lệnh sẽ xóa mọi thứ bên dưới các điểm bắt đầu mà bạn đã chỉ định.
Khi nói đến thư mục,
find
có thể xóa các thư mục trống giống như
rmdir
.
Phần kết luận
Chúng tôi đã chỉ cho bạn cách sử dụng lệnh
find
với các tùy chọn và tiêu chí khác nhau.
Bài viết này sẽ cung cấp cho bạn một sự hiểu biết cơ bản về cách định vị các tệp trên các hệ thống Linux của bạn. Bạn cũng có thể truy cập trang
find
và đọc về tất cả các tùy chọn mạnh mẽ khác của lệnh
find
.
Nắm bắt dòng lệnh bằng lệnh Take
Tích hợp dấu nhắc lệnh, GUI và một ngôn ngữ hàng loạt mạnh mẽ với bộ công cụ Take Command mạnh.
Cách trích xuất tệp CAB bằng các công cụ dòng lệnh trong Windows 10/8/7
Bạn có thể giải nén một hoặc Các tệp nội bộ được nén nhiều hơn .CAB sử dụng các công cụ dòng lệnh được tích hợp sẵn của Windows như expand.exe, makecab & extrac32.
Tìm kiếm tệp nhanh: Tìm kiếm tệp của bạn bằng siêu tốc trong Windows
Tìm kiếm tệp nhanh là phần mềm miễn phí tìm kiếm tệp của bạn trong một vấn đề chỉ trong vài giây, tiết kiệm thời gian và nỗ lực chờ đợi của bạn. Hoạt động trên tất cả Windows.







