Bài viết này itsmeit sẽ giải thích và đưa ra các ví dụ về cách sử dụng câu lệnh find trong Ubuntu, cách tìm file trong linux dựa trên các tiêu chí nhất định như quyền đối với file, quyền sở hữu, ngày sửa đổi, kích thước…
Hướng dẫn sử dụng câu lệnh find trong Ubuntu, cách tìm file trong linux
find [paths] [expression] [actions]
Biểu thức sẽ cho phép bạn lọc các file của mình dựa trên một số tiêu chí và cho phép bạn thực hiện các lệnh shell trên file. Find linux command sẽ hiển thị các file một cách đệ quy, nghĩa là trước tiên nó sẽ duyệt qua mọi thư mục và sau đó in ra kết quả tương ứng.
1. Liệt kê tất cả các file bên trong thư mục hiện tại
find
Thao tác này sẽ in tất cả các file có trong thư mục hiện tại. Nếu thư mục hiện tại chứa các thư mục bổ sung, nó cũng sẽ hiển thị chúng.
find -print
2. Liệt kê, tìm tất cả các file có trong một thư mục cụ thể
find /folder
Ví dụ về lệnh find trong Ubuntu bên trên, câu lệnh tìm file trong linux và hiển thị tất cả các file có bên trong thư mục /folder. Bạn có thể sử dụng lệnh này để liệt kê tất cả các file của một đường dẫn cụ thể trong hệ thống Linux.
3. Tìm kiếm một file cụ thể
find -name test.txt
Lệnh này tìm kiếm file có tên test.txt bên trong thư mục hiện tại của bạn và trong mọi thư mục con khác. Sử dụng lệnh này khi bạn đang tìm kiếm các file cụ thể.
4. Tìm kiếm một file cụ thể trong một thư mục
find /Docs -name test.txt
Lệnh này sẽ tìm kiếm file có tên test.txt trong thư mục có tên /Docs. Bạn có thể sử dụng cả đường dẫn tuyệt đối và đường dẫn tương đối khi sử dụng lệnh này.
5. Tìm kiếm một file trong nhiều thư mục
find /opt /usr /var -name foo.scala -type f
Bạn có thể sử dụng lệnh find trong Ubuntu hoặc Linux khi tìm kiếm một file trong nhiều thư mục cùng một lúc. Đơn giản chỉ cần đặt tên thư mục lần lượt theo sau là dấu cách khi tìm kiếm.
6. Tìm kiếm trường hợp bỏ qua file
find -iname test.txt

Lệnh này sẽ tìm kiếm file test.txt mà không khớp với trường hợp. Vì vậy, nếu bạn có hai file được gọi là test.txt và Test.txt, nó sẽ hiển thị cả hai file. Tùy chọn -iname cho phép lệnh find thực hiện việc này.
7. Tìm kiếm các thư mục bên trong thư mục hiện tại
find -type d
Lệnh trên sẽ liệt kê mọi thư mục bạn có trong thư mục làm việc hiện tại của bạn. Bạn có thể thêm tùy chọn tên để liệt kê các thư mục cụ thể.
8. Tìm kiếm một thư mục con cụ thể trong một thư mục
find /home -type d -name users
Lệnh find trong Ubuntu & Linux trên sẽ tìm kiếm một thư mục được gọi là người dùng bên trong thư mục / home. Bạn có thể thêm tùy chọn -iname thay vì -name để tìm kiếm mà không liên quan đến trường hợp.
9. Tìm kiếm file PHP bằng cách sử dụng tên
find -type f -name test.php

Lệnh này sẽ liệt kê file PHP có tên test.php hiện diện bên trong thư mục làm việc hiện tại.
10. Tìm kiếm tất cả các file PHP, find linux file php
find -type f -name "*.php"
Lệnh find trong Ubuntu hay Linux (find linux command) ở trên sẽ in ra mọi file PHP bạn có bên trong thư mục làm việc hiện tại của mình. Bạn có thể thêm tùy chọn đường dẫn trước kiểu liệt kê các file PHP chỉ hiển thị trong một thư mục cụ thể.
11. Tìm tất cả các Symbolic Links
find /usr -type l
Lệnh find ở trên tìm kiếm các file có tên cache với các phần mở rộng khác nhau. Bạn có thể thực hiện tìm kiếm các tiện ích mở rộng bổ sung bằng cách thêm tùy chọn tên theo sau là cờ -o.
12. Tìm kiếm file với các tiện ích mở rộng khác nhau
find . -type f \( -name "*cache" -o -name "*xml" -o -name "*html" \)
Lệnh find trong Ubuntu & Linux ở trên tìm kiếm các file có tên cache với các phần mở rộng khác nhau. Bạn có thể thực hiện tìm kiếm các tiện ích mở rộng bổ sung bằng cách thêm tùy chọn tên theo sau là cờ -o.
13. Tìm file có quyền 777
find -type f -perm 0777 -print
Lệnh này sẽ liệt kê tất cả các file trong thư mục làm việc hiện tại có quyền của chúng được đặt thành 777. Đây là những file mà bất kỳ người dùng nào cũng có thể đọc, ghi và thực thi.
14. Tìm FILE mà không có quyền 777
find / -type f ! -perm 777
Lệnh find này trong Linux & Ubuntu sẽ chỉ tìm kiếm những file có các quyền được đặt khác với 777. Bạn có thể thay thế / bằng bất kỳ vị trí nào khác để thu hẹp kết quả tìm kiếm của mình.
15. Tìm file SGID với quyền 644
find / -perm 644

Lệnh tìm này sẽ chỉ tìm kiếm các file SGID có trạng thái quyền được đặt thành 644. File SGID cho phép truy cập tạm thời vào các tệp mà bạn không sở hữu hoặc có quyền truy cập.
16. Tìm tất cả Files Sticky Bit với quyền 551
find / -perm 1551
File Sticky Bit là tập hợp các file hoặc thư mục chỉ có thể được đổi tên hoặc xóa bởi chỉ người dùng đã tạo chúng hoặc người dùng gốc. Lệnh này sẽ hiển thị tất cả các file Sticky Bit trong hệ thống của bạn với quyền 551.
17. Tìm tất cả các file SUID
find / -perm /u=s
File SUID cho phép quyền sở hữu tạm thời nhóm file cho những người dùng không phải là chủ sở hữu của nhóm file hoặc người dùng gốc. Lệnh find trong Ubuntu & Linux này sẽ liệt kê tất cả các file SUID mà bạn có trong máy Linux hiện tại của mình.
18. Tìm tất cả SGID Files
find / -perm /g=s
File SGID tương tự như file SUID theo nhiều cách ngoại trừ khi file có quyền SGID được chạy, việc thực thi diễn ra như thể chủ sở hữu ban đầu đang chạy quy trình. Lệnh tìm này liệt kê mọi file SGID đơn lẻ bất kể trạng thái quyền của chúng.
19. Lệnh find trong Ubuntu & Linux để tìm các file Read-Only
find / -perm /u=r
Các file chỉ đọc cấm người dùng Linux ghi hoặc thực thi chúng. Chúng chỉ có thể được viết hoặc thực thi bởi chủ sở hữu file hoặc người dùng root. Lệnh tìm này sẽ hiển thị tất cả các file chỉ đọc mà máy của bạn hiện có.
20. Tìm tất cả các file Executable
find / -perm /a=x
Find linux command Executable file chỉ đơn giản là các file có thể được thực thi chẳng hạn như file nhị phân. Lệnh find trong Ubuntu hay Linux ở trên sẽ tìm kiếm trong hệ thống mọi file như vậy và liệt kê chúng cho phù hợp.
21. Tìm tất cả Files có quyền 777 và phân quyền thành 644
find / -type f -perm 0777 -print -exec chmod 644 {} \;
Lệnh find ở trên tìm kiếm tất cả các file có quyền 777 được liên kết với chúng và sẽ thay đổi trạng thái quyền của chúng thành 644 bằng lệnh chmod. Giờ đây, chỉ bạn mới có thể đọc hoặc ghi vào các file có quyền 644.
22. Tìm tất cả thư mục có quyền 777 và phân lại quyền 755
find / -type d -perm 777 -print -exec chmod 755 {} \;
Lệnh find trong Ubuntu & Linux này sẽ tìm kiếm mọi thư mục có quyền 777 và sẽ thay đổi trạng thái quyền của chúng thành 755. Về bản chất, điều này thực hiện là chỉ cho phép toàn quyền cho chủ sở hữu và quyền đọc và thực thi cho người dùng khác.
23. Tìm và xóa file test.txt
find -type f -name "test.txt" -exec rm -f {} \;
Lệnh “find” trong Linux & Ubuntu này được sử dụng khi bạn cần xóa một file khỏi danh sách nhiều file. Trong trường hợp này, trước tiên nó tìm file có tên test.txt trong thư mục hiện tại và xóa nó bằng cách sử dụng rm- f.
24. Tìm các file có đuôi .mp3 và xóa
find -type f -name "*.mp3" -exec rm -f {} \;
Lệnh Find rất hữu ích để tìm kiếm các mảng lớn gồm các loại file cụ thể và xóa chúng ngay lập tức. Lệnh trên tìm kiếm các file .mp3 trong hệ thống của bạn và xóa chúng mà không cần bất kỳ lời nhắc nào. Bạn có thể thêm cờ tương tác -i với phần rm để nhận được lời nhắc mỗi khi xóa xảy ra.
25. Tìm tất cả File trống trong hệ thống trong 1 thư mục cụ thể
Ví dụ sử dụng lệnh find trong Ubuntu & Linux để tìm trong thư mục /tmp
find /tmp -type f -empty
Các tệp tin trống có thể tiêu tốn tài nguyên hệ thống của bạn trong một thời gian rất ngắn. Sử dụng lệnh trên để liệt kê tất cả các tệp tin trống bằng lệnh tìm. Bạn có thể xóa các tệp tin này bằng cách thêm -exec rm -f {} \; giống như lệnh trên.
26. Tìm tất cả thư mục trống trong hệ thống trong 1 thư mục cụ thể
Ví dụ tìm trong thư mục /tmp
find /tmp -type d -empty
Lệnh này sẽ liệt kê tất cả các thư mục trống nằm bên trong thư mục / tmp. Bạn có thể sử dụng quyền này để tìm các thư mục trống trong bất kỳ thư mục nào khác và cũng có thể xóa chúng nếu bạn muốn giống như bạn đã làm trước đó.
27. Tìm các file ẩn trong thư mục
find /home -type f -name ".*"
Các thư mục ẩn thường được bắt đầu bằng một dấu chấm (.) Trong hệ thống (system) trong Linux. Sử dụng lệnh trên để liệt kê tất cả các thư mục ẩn mà bạn có bên trong thư mục /home của mình.
28. Tìm 1 file với quyền của 1 user nào đó
find /home -user root -name test.txt
Bạn có thể sử dụng lệnh find trong Linux để tìm kiếm một tệp tin do một người dùng cụ thể sở hữu. Lệnh trên tìm kiếm một tệp tin có tên test.txt trong thư mục /home thuộc quyền root
Hoặc
find /home -user username
Lệnh find trong Ubuntu hay Linux ở trên tìm kiếm tất cả các tệp tin trong thư mục /home thuộc về “username” của người dùng. Bạn sẽ cần thay thế “username” bằng tên người dùng Linux của mình để tìm tất cả các tệp tin thuộc về bạn.
29. Tìm tất cả file theo group
find /home -group itsmeit
Lệnh trên Linux & Ubuntu cho phép bạn tìm kiếm tất cả các tệp tin thuộc một nhóm cụ thể được gọi là “develop” và in chúng trong terminal Thay thế “itsmeit” bằng tên group mà bạn muốn tìm kiếm.
30. Tìm các file cụ thể của user
find /home -user itsmeit -iname "*.txt"
Bạn có thể sử dụng lệnh find linux command để tìm kiếm các file cụ thể của user. Lệnh trên thực hiện việc này và liệt kê tất cả các file .txt thuộc về user itsmeit. Thay thế itsmeit bằng tên người dùng và .txt của bạn bằng bất kỳ loại file nào khác để tìm file thuộc một loại nhất định thuộc về bạn.
31. Tìm tất cả các file đã được sửa đổi trong 50 ngày qua
find / -mtime 50
Toán tử + và – được sử dụng cùng với -mtime để thực hiện việc này. Lệnh trên tìm tất cả các file được bạn sửa đổi trong 50 đến 100 ngày qua.
find / -mtime +50 –mtime -100
32. Tìm tất cả các file được thay đổi trong 1 giờ qua
find / -cmin -60
Lệnh find trong Ubuntu & Linux ở ví dụ này sẽ tìm và liệt kê tất cả các FILE đã được thay đổi trong giờ trước. Bạn có thể thay thế / bằng một thư mục cụ thể để thu hẹp tìm kiếm của mình. Thay đổi 60 thành bất kỳ số nào khác như 120 để tìm các tệp đã được thay đổi trong thời gian đó (2 giờ cho 120).
Hoặc
find / -mmin -60
Lệnh trên sẽ hiển thị tất cả các file đã được sửa đổi trong vòng 1 giờ qua. Chuyển 60 sang bất kỳ số nào khác để thay đổi khung thời gian theo yêu cầu của mục đích của bạn.
33. Tìm tất cả các FILE được truy cập trong 1 giờ qua
find / -amin -60
Lệnh này hiển thị tất cả các file mà bạn đã truy cập trong giờ qua. Như với hai lệnh trước, vui lòng thay đổi 60 cho kết quả mong muốn của bạn.
34. Tìm tập tin có kích thước 50 MB
find / -size 50M
Lệnh này sẽ in ra tất cả các file bạn có kích thước trên 50 MB. Thay thế / bằng thư mục mong muốn của bạn và 50M bằng bất kỳ kích thước nào khác để thu hẹp kết quả tìm kiếm của bạn hiệu quả hơn. Đây cũng là 1 câu lệnh find trong Ubuntu & Linux được sử dụng thường xuyên.
Hoặc tìm các file có dung lượng trên 100M
find / -size +100M
Hoặc tìm các file có dung lượng từ 50-100M
find / -size +50M -size -100M
35. Xóa tất cả các tập tin trên 500 MB
find /xvideo.cơm -size +500M -exec rm -rf {} \;
Lệnh trên sẽ cho phép bạn thực hiện chính xác điều này. Đảm bảo thay thế /xvideo.cơm bằng tên thư mục chứa file của bạn.
36. Lệnh find trong Ubuntu & Linux để tìm file lớn nhất
find . -type f -exec ls -s {} \; | sort -n -r | head -5
Lệnh find, find linux command ở trên sẽ in ra 5 file lớn nhất mà bạn có trong thư mục làm việc hiện tại và trong các thư mục con của nó.
37. Tìm file nhỏ nhất
find . -type f -exec ls -s {} \; | sort -n | head -5
Bạn cũng có thể sử dụng lệnh find trong Linux để hiển thị các file nhỏ nhất. Lệnh này in ra 5 file nhỏ nhất mà bạn có trong thư mục hiện tại của mình.
38. Tìm và xóa các file cụ thể
Ví dụ, sử dụng lệnh Find đểtìm các file có đuôi .mp3 và kích thước lơn hơn 10M trên Linux.
find / -type f -name *.mp3 -size +10M -exec rm {} \;
39. Tìm các tệp tin không khớp với một mẫu được chỉ định
Ví dụ khác về sử dụng lệnh find trong Ubuntu & Linux để tìm các file không có đuôi .html trong thư mục home
find /home -type f -not -name "*.html"
40. Tìm file theo văn bản bên trong file
find . -type f -name "*.java" -exec grep -l StringBuffer {} \;
Bạn có thể sử dụng câu command lệnh find trong ubuntu | Linux và kết hợp nó với grep để tìm file dựa trên văn bản mà chúng chứa. Lệnh trên tìm kiếm các file có đuôi .java có chứa StringBuffer bên trong . Thêm cờ -i vào grep sẽ làm cho tìm kiếm này bỏ qua trường hợp.
41. Tìm và sao chép file
find . -type f -name "*.mp4" -exec cp {} /home/xvideo \;
Lệnh trên tìm tất cả các file .mp4 trong thư mục hiện tại và sao chép chúng vào thư mục /home/xvideo
42. Tìm và di chuyển file
find . -type f -name "*.mp4" -exec cp {} /home/xvideo \;
Lệnh trên tìm tất cả các file .mp4 trong thư mục hiện tại và di chuyển chúng vào thư mục /home/xvideo
43. Tìm và nén file tar
Lệnh find trong Ubuntu hay Linux với ví dụ tìm các file có đuôi .mp4 và nén thành file .tar
find . -type f -name "*.mp4" | xargs tar cvf xvideo.tar
44. Lọc thông báo lỗi
find [paths] [expression] [actions] 2>/dev/null
Đôi khi bạn có thể gặp phải các lỗi như “Permission Denied” hoặc điều gì đó khác trong khi thử một số lệnh tìm kiếm. Bạn có thể chuyển hướng các lỗi này đến /dev/null như được hiển thị ở trên.
45. Tìm tất cả các thư mục trong 1 thư mục và phân quyền cho nó
Ví dụ phân quyền cho tất cả các thư mục con trong thư mục httpdocs sử dụng Find linux command:
find /httpdocs -type d -exec chmod 755 {} +
46. Tìm tất cả các file trong 1 thư mục và phân quyền cho nó
find /httpdocs -type f -exec chmod 644 {} +
Trên đây là tổng hợp các câu lệnh find trong Ubuntu & Linux được itsmeit tổng hợp và đưa ra các ví dự về cách sử dụng nó. Qua bài viết này chắc hẳn bạn sẽ có cái nhìn mới và có thêm kiến thức về câu lệnh find, no sẽ được sử dụng thường xuyên khi bạn thao tác với Linux.
— Xem thêm: Lệnh SS trên Linux | Ubuntu và hướng dẫn cách sử dụng
– Advertising –