Khi sử dụng hệ điều hành Linux đôi khi chúng ta cần tìm một thư mục hoặc một file nào đó, nhưng không biết chúng nằm ở đâu và có thể sẽ mất rất nhiều thời gian để tìm thấy. Thay vào đó chúng ta có thể sử dụng lệnh find trong linux để có thể tìm ra file hoặc thư mục một cách nhanh chóng.
Tìm file nằm trong thư mục hiện tại
Tìm tất cả các file có tên là vinahost.txt trong thư mục hiện tại đang làm việc
# find . -name vinahost.txt ./vinahost.txt
Tìm tất cả các file nằm trong thư mục / home với tên vinahost.txt # find /home -name vinahost.txt /home/vinahost.txt
Tìm tất cả các file có tên là vinahost.txt và tên gồm cả chữ hoa và chữ thường trong thư mục /home
# find /home -iname vinahost.txt ./vinahost.txt ./vinahost.txt
Tìm tất cả thư mục có tên là Vinahost nằm trong thư mục /
# find / -type d -name Vinahost /Vinahost
Tìm file Vinahost.php nằm trong thư mục đang làm việc
# find . -type f -name Vinahost.php ./Vinahost.php
Tìm tất cả file PHP trong thư mục
Tìm tất cả file có phần mở rộng là php trong thư mục đang làm việc
# find . -type f -name "*.php"
./Vinahost.php
./login.php
./index.php
Tìm file có mã quyền là 777
# find . -type f -perm 0777 -print
Bạn có thể thay đổi 777 sang 775 hoặc một mã bất kì.
Tìm file có mã quyền khác 777
# find / -type f ! -perm 777
Tìm SGID Files có mã quyền là 644
# find / -perm 2644
Tìm Sticky Bit file có quyền là 551
# find / -perm 1551
Tìm file SUID
# find / -perm /u=s
Tìm file SGID
# find / -perm /g=s
Tìm file đang ở chế độ read only
# find / -perm /u=r
Tìm file có thể thực thi
# find / -perm /a=x
Tìm file có mã quyền 777 và chmod là 644
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
Tìm thư mục có mã quyền 777 và chmod là 644
# find / -type d -perm 777 -print -exec chmod 755 {} \;
Tìm và xóa một file
# find . -type f -name "vinahost.txt" -exec rm -f {} \;
Tìm và xóa nhiều file
# find . -type f -name "*.txt" -exec rm -f {} \; # find . -type f -name "*.mp3" -exec rm -f {} \;
Tìm file rỗng
# find /tmp -type f -empty
Tìm thư mục rỗng
# find /tmp -type d -empty
Tìm tất cả file ẩn
# find /tmp -type f -name ".*"
Lệnh find Linux: Tìm dựa vào user và group
Sau đây là 4 ví dụ cách sử dụng lệnh find để tìm file và thư mục theo user / group.
Tìm một file dựa vào user
Để tìm tất cả hoặc một file có tên là vinahost.txt trong thư mục /root của một user ta dùng lệnh sau.
# find / -user root -name vinahost.txt
Tìm tất cả các file dựa vào user
Tìm tất cả các file thuộc sở hữu của user Vinahost nằm trong thư mục /home.
# find /home -user Vinahost
Tìm tất cả các file dựa vào group
Tìm tất cả các file thuộc group Developer trong thư mục /home.
# find /home -group developer
Tìm một file có phần mở rộng thuộc một group
Tìm tất cả file .txt của user Vinahost nằm trong thư mục /home.
# find /home -user Vinahost -iname "*.txt"
Lệnh Find trong Linux: Tìm file dựa vào thời gian tạo
Tìm những file được sửa đổi 50 ngày qua
# find / -mtime 50
Tìm file được truy cập 50 ngày qua
# find / -atime 50
Tìm file được sửa đổi trong khoảng 50 – 100 ngày
# find / -mtime +50 –mtime -100
Tìm các file đã thay đổi trong 1 giờ qua
# find / -cmin -60
Tìm file đã sửa đổi trong 1 giờ qua
# find / -mmin -60
Tìm file đã truy cập trong 1 giờ qua
# find / -amin -60
Lệnh find trong Linux: Tìm file dựa vào kích thước
Tìm file có kích thước 50MB
# find / -size 50M
Tìm file có kích thước trong khoảng 50MB – 100MB
# find / -size +50M -size -100M
Tìm và xóa file có kích thước 100MB
# find / -type f -size +100M -exec rm -f {} \;
Tìm một file cụ thể và xóa
# find / -type f -name *.mp3 -size +10M -exec rm {} \;
THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:
>> SERVER – COLOCATION – CDN
>> Thuê Cloud Server – VPS
>> HOSTING
>> WEBSITE
>> TÊN MIỀN
>> SSL