Hàm find trong linux

Bạn đang muốn tìm kiếm một file, thư mục hay một thứ gì đó trên Linux nhưng phải thật chính xác, tối ưu hay bạn đang “lạc” giữa hàng tá lệnh Find trên Linux và đang tìm “lối thoát” cho công cuộc tìm kiếm của mình? Vậy, Tino Group sẽ hướng dẫn sử dụng lệnh Find trên Linux giúp bạn nhé!

Tìm hiểu về lệnh Find trên Linux

Giới thiệu lệnh find trên Linux

Bạn muốn tìm kiếm một thứ gì đó trong ổ cứng mà không nhớ ở đâu, tên cụ thể là gì, hay làm sao tìm ra file giữa quá nhiều file khá giống nhau? Tất cả những rắc rối đó sẽ được giải quyết bằng lệnh Find trên Linux.

Cấu trúc của lệnh Find

Về cơ bản, chúng ta sẽ sử dụng cấu trúc chung như sau:

$ find [bắt đầu từ đâu] [biểu thức thực hiện việc cần làm] [-tùy chọn] [thứ tìm kiếm]

Trong đó,  [-tùy chọn] sẽ bao gồm một số ý cơ bản như sau và bạn có thể tìm thêm trên các diễn đàn:

  • -user name: tên chủ sở hữu hoặc ID
  • -empty: tìm tệp trống
  • -name demo: tìm tên một tệp có chữ demo bên trong

Với đặc trưng là giao diện dòng lệnh, Linux thực sự là một công cụ rất mạnh mẽ và linh hoạt trong việc tìm kiếm nhờ sự trợ giúp của grep, awk, Find và located. Nhờ những công cụ này mà bạn sẽ dễ dàng hơn trong việc tìm kiếm các tập tin, tìm kiếm văn bản trong file hoặc thay thế một từ nào đó. Trong khuôn khổ bài viết này, chúng ta sẽ tìm hiểu kỹ về cách sử dụng lệnh Find nhé!

Hướng dẫn sử dụng lệnh Find trên Linux

Để dễ dàng đọc hiểu hơn, chúng ta sẽ “quy định riêng” cách viết trong khuôn khổ bài viết này như sau nhé!

  • Tiêu đề: hiển thị nhóm lệnh có cùng một điểm chung
  • Dòng chữ có đánh số: hiển thị nội dung của code bên dưới
  • Code dùng để tìm kiếm

Tìm kiếm cơ bản

1. Tìm kiếm file theo tên file đầy đủ

# find . tinogroup.txt

Kết quả:

./tinogroup.txt

QUẢNG CÁO

Lệnh trên sẽ tìm file có tên là tinogroup.txt [ dấu . đại diện cho thư mục hiện hành].

2. Tìm kiếm file theo tên không đầy đủ.

# find / -name tinogroup*

Kết quả:

/home/tinogroup1.php

/var/tinogroupabc.rar

Lệnh trên sẽ tìm trên toàn bộ hệ thống file có tên bắt đầu bằng “tinogroup”

3. Tìm kiếm file với phần mở rộng.

# find /home -name *.php

Kết quả:

/home/tinogroup.php

/home/admin/login.php

Lệnh trên sẽ tìm trong thư mục /home những file có tên bất kỳ, miễn nó có phần mở rộng là .php

4. Tìm kiếm file ẩn

# find / -type f -name ".*"

Tìm kiếm dựa trên phân quyền và nhóm quyền

5. Tìm kiếm file thuộc sở hữu của tinogroup 
# find /home -user tinogroup
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có chủ sở hữu là tinogroup 
6. Tìm kiếm file có group là tinogroup
# find /home -group tinogroup
Lệnh trên sẽ tìm kiếm tất cả những file trong thư mục home có group là tinogroup
7. Tìm kiếm file được phân quyền 777
# find . -type f -perm 777
8. Tìm file chỉ có quyền read
# find / -perm /u=r
9. Tìm kiếm file rỗng
# find /tmp -type f -empty

Tìm kiếm dựa trên thời gian

10. Tìm kiếm file được chỉnh sửa trong vòng 50 ngày
# find / -mtime 50
11. Tìm kiếm file được chỉnh sửa trong vòng 50 - 100 ngày
# find / -mtime +50 –mtime -100
12. Tìm kiếm file vừa được tạo ra trong vòng 1 giờ
# find / -cmin -60

Tìm kiếm dựa trên dung lượng

13. Tìm kiếm file có dung lượng 50M
# find / -size 50M
14. Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M
# find / -size +50M -size -100M
15. Tìm thư mục có tên tinogroup
# find / -type d -name tinogroup
16. Tìm kiếm trên nhiều thư mục
# find /opt /usr /var -name tinogroup.txt -type f
Lệnh trên sẽ tìm kiếm trên các thư mục /opt /usr /var tập tin tinogroup.txt
17. Tìm và xóa file có dung lượng trên 100M
# find / -size +100M -exec rm -rf {} \;

Tìm kiếm dựa trên phần mở rộng/ nội dung


18. Tìm và chmod 644 file có phần mở rộng là .html
# find /usr/local -name "*.html" -type f -exec chmod 644 {} \;
19. Tìm file có phần mở rộng là .mp3 và copy file đó đến thư mục /tmp/MusicFiles
# find . -type f -name "*.mp3" -exec cp {} /tmp/MusicFiles \;
20. Tìm file có chứa nội dung tinogroup
# find /home -type f -exec grep -l ‘tinogroup’{} \;

Vậy là Tino Group đã hướng dẫn sử dụng lệnh find trên Linux giúp bạn rồi đấy! Chúc bạn sử dụng đúng câu lệnh và có được kết quả mong muốn nhé!

FAQs về hướng dẫn sử dụng lệnh Find trên Linux

Cách tìm tệp có quyền 777 và Chmod đến 644 ra sao?

Bạn có thể sử dụng lệnh:

# find / -type f -perm 0777 -print -exec chmod 644 {} \;

Làm sao để tìm thư mục quyền 777 và Chmod 755?

Đối với trường hợp này, bạn có thể sử dụng câu lệnh như sau:

# find / -type d -perm 777 -print -exec chmod 755 {} \;

Chmod 755, 777 là gì?

Chmod là xác lập thuộc tính cho files hoặc folder. Hiểu đơn giản, Chmod là thiết lập quyền [xem, xóa …] trên file hay thư mục. Để tìm hiểu thêm về Chmod 755 và 777, bạn có thể xem bài viết: CHMOD 755, 777 là gì? Sử dụng CHMOD 755, 777 ra sao?

cURL là gì?

Nếu bạn quan tâm đến những lệnh khác trong Linux như cURL, bài viết: cURL là gì? Tổng hợp các lệnh cURL Linux Command sẽ có rất nhiều câu lệnh ví dụ giúp bạn thực hiện công việc dễ dàng hơn đấy!

Chủ Đề