find 命令詳解
歡迎來到藍隊云技術(shù)小課堂。
1 基本語法和選項
find [路徑] [選項] [操作]
2 按名稱查找
# 基本名稱查找
find /home -name "filename.txt" # 精確匹配文件名
find . -name "*.txt" # 當(dāng)前目錄下所有txt文件
find /etc -name "*.conf" # /etc下所有conf文件
find ~ -name "*.pdf" # 家目錄下所有PDF文件
# 不區(qū)分大小寫
find /var -iname "*.LOG" # 忽略大小寫
find . -iname "readme*" # 匹配README, readme等
# 使用通配符
find . -name "file*" # 以file開頭的文件
find . -name "*backup*" # 包含backup的文件
find . -name "file?.txt" # file1.txt, filea.txt等
find . -name "file[0-9].txt" # file0.txt到file9.txt
find . -name "file{old,new}.txt" # fileold.txt或filenew.txt
3 按文件類型查找
# 文件類型選項
find . -type f # 普通文件
find . -type d # 目錄
find . -type l # 符號鏈接
find . -type b # 塊設(shè)備文件
find . -type c # 字符設(shè)備文件
find . -type p # 命名管道(FIFO)
find . -type s # 套接字文件
# 實用示例
find /var -type f -name "*.log" # 查找日志文件
find /dev -type b # 查找塊設(shè)備
find /tmp -type s # 查找套接字文件
find . -type l -name "*.so" # 查找so符號鏈接


4 按時間查找
# 按修改時間 (mtime)
find /var/log -mtime -1 # 1天內(nèi)修改的文件
find . -mtime 0 # 今天修改的文件
find . -mtime +7 # 7天前修改的文件
find /backup -mtime +30 # 30天前修改的備份文件
# 按訪問時間 (atime)
find . -atime -1 # 1天內(nèi)訪問的文件
find /home -atime +90 # 90天內(nèi)未訪問的文件
# 按狀態(tài)改變時間 (ctime)
find /etc -ctime -1 # 1天內(nèi)狀態(tài)改變的文件
# 按分鐘查找 (更精確)
find . -mmin -60 # 60分鐘內(nèi)修改的文件
find . -amin +120 # 120分鐘前訪問的文件
find /tmp -cmin -30 # 30分鐘內(nèi)狀態(tài)改變的文件
# 相對時間查找
find . -newer reference.txt # 比reference.txt新的文件
find . -older reference.txt # 比reference.txt舊的文件
find . -anewer reference.txt # 比reference.txt新的訪問時間


5 按大小查找
# 基本大小查找
find . -size +10M # 大于10MB的文件
find . -size -1G # 小于1GB的文件
find . -size 100k # 等于100KB的文件
find /var -size +100M # 查找大文件
# 大小單位
c - 字節(jié) # find . -size +1c
k - KB # find . -size +1k
M - MB # find . -size +1M
G - GB # find . -size +1G
# 實用示例
find /home -size +100M -type f # 查找大文件
find /var/log -size +1G -name "*.log" # 查找大日志文件
find . -size 0 # 查找空文件
find . -size +0 -a -size -10k # 查找1B-10KB的文件

6 按權(quán)限和所有者查找
# 按權(quán)限查找
find . -perm 644 # 精確匹配權(quán)限644
find /etc -perm 600 # 查找權(quán)限為600的文件
find . -perm -u=r # 用戶有讀權(quán)限
find . -perm -g=w # 組有寫權(quán)限
find . -perm -o=x # 其他用戶有執(zhí)行權(quán)限
find . -perm /u=rwx # 用戶有任一rwx權(quán)限
# 按所有者查找
find /home -user john # 屬于用戶john的文件
find /var -group www-data # 屬于組www-data的文件
find . -uid 1000 # UID為1000的文件
find . -gid 1001 # GID為1001的文件
find . -nouser # 沒有所屬用戶的文件
find . -nogroup # 沒有所屬組的文件
7 組合條件查找
# 與操作 (默認)
find . -name "*.txt" -type f # 同時滿足兩個條件
find /var -name "*.log" -size +10M
# 或操作 (-o)
find . -name "*.txt" -o -name "*.pdf" # 滿足任一條件
find . -type f -o -type d # 文件或目錄
# 非操作 (! 或 -not)
find . ! -name "*.tmp" # 排除tmp文件
find . -not -name "*.bak"
find . ! -user root # 不屬于root的文件
藍隊云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。
更多技術(shù)知識,藍隊云期待與你一起探索。