Cách sử dụng lệnh tìm tệp Linux để tìm tệp

Trong bài này chúng ta sẽ xem xét linux find lệnh và cách tìm kiếm và tìm các tệp có các thuộc tính khác nhau.



Linux find Command

Hệ điều hành Linux find command là một công cụ mạnh mẽ được tích hợp sẵn có thể được sử dụng để định vị và quản lý các tệp và thư mục dựa trên nhiều tiêu chí tìm kiếm.

Ví dụ: chúng ta có thể tìm các tệp theo tên, phần mở rộng, kích thước, quyền của chúng, v.v. Chúng ta cũng có thể sử dụng dấu find lệnh để tìm kiếm một văn bản cụ thể bên trong một tệp mà chúng tôi không biết tên.


Hãy xem một số cách sử dụng của find lệnh với các ví dụ:

Tìm kiếm tệp theo tên

Nếu bạn biết tên của tệp nhưng không thể nhớ thư mục chứa tệp đó, bạn có thể sử dụng lệnh sau từ thư mục gốc:


find . -name sales.csv

Đầu ra mẫu:

./accounts/sales.csv

Tìm kiếm một tệp cụ thể trong một thư mục

Nếu bạn muốn tìm kiếm (các) tệp cụ thể trong một thư mục, chúng tôi có thể sử dụng:

find ./test -name testCases*

Đầu ra mẫu:

./test/testCases10.txt ./test/testCasesPassed.txt ./test/testCasesFailed.log

Trong trường hợp trên, chúng tôi chỉ tìm kiếm trong thư mục “./test”.


Tìm tệp theo tiện ích mở rộng

Để tìm kiếm và tìm các tệp theo một phần mở rộng nhất định, chúng tôi sử dụng:

find . -name *.jpg

Đầu ra mẫu:

./test/results/failedTests.jpg ./test/project.jpg ./home/profile_pic.jpg ./tmp/cute-cats.jpg

Tìm các tệp hoặc thư mục có tên nhất định

Để chỉ tìm các tệp, chúng ta cần sử dụng dấu -f Lựa chọn:

find ./ -type f -name 'results*'

Đầu ra mẫu:


./test/results_latest.log ./test/results_archive.pdf

Để chỉ tìm các thư mục, chúng ta cần sử dụng dấu -d Lựa chọn:

find ./ -type d -name 'results*'

Đầu ra mẫu:

./test/results

Tìm tệp trong nhiều thư mục

Nếu bạn muốn tìm kiếm và liệt kê tất cả các tệp có tên đã cho trong nhiều thư mục, bạn có thể bắt đầu tìm kiếm tại thư mục gốc hoặc nếu bạn biết các thư mục, bạn có thể chỉ định chúng.

Thí dụ:


find ./test ./logs -name failed*.* -type f

Đầu ra mẫu:

./test/failed_tests.txt ./logs/failed_tests.log

Tìm tệp chứa một văn bản nhất định

Đôi khi bạn muốn tìm một tệp và bạn không biết tên của nó, nhưng bạn biết rằng nó có một văn bản nhất định bên trong.

Bạn có thể dùng:

find ./test -type f -exec grep -l -i 'login_scenarios' {} ;

Đây, dấu -i tùy chọn được sử dụng để bỏ qua trường hợp, vì vậy cả hai đều sẽ được tìm thấy Login_Scenarios và login_scenarios.


Tìm tệp theo kích thước

Chúng tôi thậm chí có thể tìm thấy các tệp theo các kích thước khác nhau. Các tùy chọn kích thước là:

  • c byte
  • k kilobyte
  • M Megabyte
  • G Gigabyte

Ví dụ: để tìm tệp có kích thước chính xác, chúng tôi sử dụng:

find / -size 10M

Và để tìm các tệp lớn hơn một kích thước nhất định, chúng tôi sử dụng:

find ./test -size +2M

Ở trên sẽ tìm thấy tất cả các tệp lớn hơn 2MB trong thư mục ./test.

Tìm và xóa các tệp cụ thể

Để tìm và xóa các tệp cụ thể, chúng tôi sử dụng:

find . -type f -name 'temp*' -exec rm {} ;

Phần kết luận

Trong bài viết này, bạn đã học về cách sử dụng lệnh find trong linux để tìm kiếm các tệp dựa trên tên, phần mở rộng, kích thước và kiểu.