linux

Find

Oct 1, 2019 • find

1.Tìm theo tên

find -name "file_name" (tên chính xác)
find -iname "file_name" (cả tên in hoa)
find -not -name "file_name_to_avoid"
find \! -name "file_name_to_avoid"
find -name test* (tên có chứa chuỗi)

2.Tìm theo thể loại

Sử dụng option -type

  • f: regular file
  • d: directory
  • l: symbolic link
  • c: character devices
  • b: block devices
find -type f -name “*.ovpn”

3.Tìm theo size

Sử dụng option -size : c (bytes), k (kilobytes), M (megabytes), G (gigabytes), b (512-byte blocks)

find / -size 50c (file nặng 50 bytes)
find / -size -50c (file nhỏ hơn 50 bytes)
find / -size +1G (file nặng hơn 1G)

4.Tìm theo time

Linux lưu trữ 1 vài thông tin liên quan đến thời gian như: thời điểm truy cập, thời điểm chỉnh sửa, và thời điểm thay đổi file.

  • Access Time (thời điểm truy cập): Lần cuối cùng file được đọc hoặc ghi vào.
  • Modification Time (thời điểm chỉnh sửa): Lần cuối nội dung file được chỉnh sửa.
  • Change Time (thời điểm thay đổi): Lần cuối mà inode meta-data của file bị sửa.

Tương đương với các thông tin trên, ta dùng -atime, -mtime, -ctime, và cả “-“ và “+” để lọc ra những thời gian trước hay sau thời điểm đó.
Để tìm các file được chỉnh sửa trong vòng 1 ngày trước:

find / -mtime 1

Tìm các file được truy cập trong ngày hôm qua:

find / -atime -1

Các file mà meta-data bị chỉnh sửa lần cuối là 3 ngày trước và hơn:

find / -ctime +3

Hoặc tìm file được chỉnh sửa trong vòng 1 phút trước.

find / -mmin -1

Lệnh find còn có thể so sánh với 1 file, và trả về những file mới hơn:

find / -newer myfile

5.Tìm theo Owner và Permission

Chúng ta có thể tìm theo user hay group owner bằng -user-group.

find / -user syslog
find / -group sudo

Tìm những file có permission 644:

find / -perm 644
  • 4 is read
  • 5 is read/execute (execute is always needed for directories)
  • 6 is read/write
  • 7 is read, write, and execute

6. Kết hợp find với command khác

Chúng ta còn có thể kết hợp find và các command khác để xử lý những file vừa tìm được với -exec

find find_parameters -exec command_and_params {} \;

Tìm các file có permission là 744 và chmod sang 755:

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

Tìm 1 file test.py và xóa nó:

find . -type f -name "test.py" -exec rm -f {} \;

Xóa các file có đuôi .mp3 ở dir hiện tại:

find . -type f -name "*.mp3" -exec rm -f {} \;

Tìm các file .mp3 ở thư mục gốc i, không tìm thư mục con của i và move sang thư mục Music

find /i -maxdepth 1 -name '*.mp3' -exec mv -t /i/Music/ {} +

7. Option khác

-empty để tìm các file/dir rỗng


Back

Back