Sunday, January 19, 2025

Lệnh find trên Linux

-

Lệnh find là một trong những lệnh quan trọng trên Linux, cho phép bạn tìm kiếm và xử lý các file trong hệ thống file của Linux. Lệnh find được sử dụng để tìm kiếm các file theo một số tiêu chí nhất định như tên file, ngày thay đổi, kích thước và nhiều thuộc tính khác.

Cú pháp của lệnh find như sau:

find [đường dẫn...] [tham số] [tên file hoặc mẫu]

Trong đó:

  • Đường dẫn: Đường dẫn đến thư mục bạn muốn tìm kiếm file trong đó. Nếu không được chỉ định, lệnh find sẽ tìm kiếm trong thư mục hiện tại và tất cả các thư mục con của nó.
  • Tham số: Chỉ định các tham số bổ sung cho lệnh find.
  • Tên file hoặc mẫu: Tìm kiếm file với tên cụ thể hoặc mẫu phù hợp với tên file.

Một số ví dụ về cách sử dụng lệnh find:

Phần 1. Tìm kiếm cơ bản

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

root@terraform:~# find /home/learn-devops/note.sh
/home/learn-devops/note.sh

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

root@terraform:~# find /home/learn-devops/.gitlab*
/home/learn-devops/.gitlab-ci-gitlab-ok.yml
/home/learn-devops/.gitlab-ci-jenkins.yml
/home/learn-devops/.gitlab-ci-monitor-ok.yml

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

root@terraform:~# find /home/learn-devops/ -name *.sh
/home/learn-devops/infrastructure/terraform/scripts/sshconfig.sh
/home/learn-devops/infrastructure/roles/k8s/k8s.sh
/home/learn-devops/build.sh
/home/learn-devops/packages/roles/gitlab.sh
/home/learn-devops/packages/roles/docker.sh
/home/learn-devops/packages/roles/nginx.sh
/home/learn-devops/packages/roles/guacamole.sh
/home/learn-devops/packages/roles/zabbix.sh
/home/learn-devops/packages/roles/ansible.sh
/home/learn-devops/packages/roles/jenkins.sh
/home/learn-devops/packages/roles/terraform.sh

4. Tìm kiếm file ẩn

root@terraform:~# find /home/learn-devops/ -type f -name ".*"
/home/learn-devops/.gitlab-ci-gitlab-ok.yml
/home/learn-devops/sourceweb/hoanghd.fun/.DS_Store
/home/learn-devops/sourceweb/demo.hoanghd.fun/assets/scss/bootstrap/js/tests/unit/.eslintrc.json
/home/learn-devops/sourceweb/demo.hoanghd.fun/.gitignore
/home/learn-devops/.gitlab-ci-jenkins.yml
/home/learn-devops/.gitignore
/home/learn-devops/.gitlab-ci-monitor-ok.yml

5. Tìm kiếm file có owner là hoanghd

root@terraform:~# find /home/learn-devops/ -user hoanghd
/home/learn-devops/
/home/learn-devops/infrastructure
/home/learn-devops/infrastructure/terraform
/home/learn-devops/infrastructure/terraform/variables.tf

6. Tìm kiếm file có group là hoanghd

root@terraform:~# find /home/learn-devops/ -group hoanghd
/home/learn-devops/
/home/learn-devops/infrastructure
/home/learn-devops/infrastructure/terraform
/home/learn-devops/infrastructure/terraform/variables.tf
/home/learn-devops/infrastructure/terraform/scripts

7. Tìm kiếm file được phân quyền 777

find /home/learn-devops/ -type f -perm 777

8. Tìm file chỉ có quyền read

find /home/learn-devops/ -perm /u=r

9. Tìm kiếm file rỗng

find /home/learn-devops/ -type f -empty

10. Tìm kiếm file được chỉnh sửa trong vòng 50 ngày

find /home/learn-devops/ -mtime 50

11. Tìm kiếm file được chỉnh sửa trong vòng 50 – 100 ngày

find /home/learn-devops/ -mtime +50 –mtime -100

12. Tìm kiếm file vừa được tạo ra trong vòng 1 giờ

find /home/learn-devops/ -cmin -60

13. Tìm kiếm file có dung lượng 50M

find /home/learn-devops/ -size 50M

14. Tìm kiếm file có dung lượng lớn hơn 50M nhỏ hơn 100M

find /home/learn-devops/ -size +50M -size -100M

15. Tìm thư mục có tên hoanghd

find /home/learn-devops/ -type d -name hoanghd

16. Tìm kiếm trên nhiều thư mục

find /home/learn-devops/ /usr/local/bin /var -name hoanghd.txt -type f

Phần 2. Tìm kiếm nâng cao, kết hợp với lệnh khác (rm, exec, cp, grep,..)

  1. Tìm và xoá file có dung lượng trên 100M
find /home/learn-devops/ -size +100M -exec rm -rf {} \;

18. Tìm và chmod 644 file có phần mở rộng là .html

find /home/learn-devops/ -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

find /home/learn-devops/ -type f -name "*.mp3" -exec cp {} /tmp/MusicFiles \;

20. Tìm file có chứa nội dụng hoanghd

find /home/learn-devops/ -type f -exec grep -l 'header-account-title' {} \;

21. Tìm file theo tên hoặc phần mở rộng hoặc kích thước (-o = OR)

find /home/learn-devops/ \( -name '*.txt' -o -name 'doc*' -o -size +5M \)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories