欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux find 命令完全指南及核心用法

 更新時(shí)間:2025年03月18日 15:27:34   作者:可問 可問春風(fēng)  
find 是 Linux 系統(tǒng)最強(qiáng)大的文件搜索工具,支持 嵌套遍歷、條件篩選、執(zhí)行動(dòng)作,下面給大家介紹Linux find 命令完全指南,感興趣的朋友一起看看吧

find 是 Linux 系統(tǒng)最強(qiáng)大的文件搜索工具,支持 嵌套遍歷、條件篩選、執(zhí)行動(dòng)作。以下通過場(chǎng)景分類解析核心用法,涵蓋高效搜索、文件管理及高級(jí)技巧:

一、基礎(chǔ)搜索模式

1. 按文件名搜索(精確/模糊匹配)

<BASH>

find /path -name "*.log"       # 精確匹配 .log 后綴(區(qū)分大小寫)
find /home -iname "*.TXT"      # 模糊匹配 .txt 后綴(忽略大小寫)
find . -name "data_[0-9].csv"  # 使用通配符 [] ? * 匹配

2. 排除指定目錄/文件

find /var/log -path "/var/log/nginx" -prune -o -name "*.log"  # 排除 nginx 目錄
find . -not -name "*.tmp"     # 排除所有 .tmp 文件

二、根據(jù)文件類型篩選

使用 -type 篩選文件類型:

  • f: 常規(guī)文件
  • d: 目錄
  • l: 符號(hào)鏈接
  • s: 套接字
  • p: 命名管道
find /opt -type d -name "config"        # 搜索名為 config 的目錄
find ~/ -type f -empty                  # 查找當(dāng)前用戶下空文件
find /tmp -type l -ls                  # 列出 /tmp 下所有符號(hào)鏈接詳細(xì)信息

三、時(shí)間維度搜索

按時(shí)間篩選(文件修改時(shí)間 -mtime / 訪問時(shí)間 -atime):

  • +n: n 天前
  • -n: 最近 n 天內(nèi)
  • n: 正好 n 天前
find . -mtime -7           # 查找過去 7 天內(nèi)修改過的文件
find /var/log -mtime +30 -name "*.log"  # 搜索 30 天前的日志文件

按分鐘級(jí)精準(zhǔn)控制(-mmin):

find /tmp -mmin -10       # 查找過去 10 分鐘內(nèi)修改的文件

四、文件大小搜索

使用 -size (單位:c=字節(jié), k=KB, M=MB, G=GB):

  • +n: 大于 n
  • -n: 小于 n
  • n : 等于 n
find / -size +100M        # 全局搜索大于 100MB 的文件(慎用根目錄)
find ~/Downloads -size -5k  # 查找 Downloads 中小于 5KB 的文件

五、權(quán)限與所有權(quán)過濾

1. 按權(quán)限位搜索(數(shù)字或符號(hào)模式)

find . -perm 644           # 精確匹配權(quán)限為 644 的文件
find /etc -perm -u=r       # 用戶可讀的文件(權(quán)限包含 r)
find /bin -perm /u=s       # 包含 SUID 的文件

2. 按用戶/組篩選

find /var -user www-data   # 屬于 www-data 用戶的文件
find /home -group dev      # 屬于 dev 組的文件

六、組合條件與邏輯操作

  • -a (-and): 邏輯與(默認(rèn))
  • -o (-or) : 邏輯或
  • ! (-not) : 邏輯非
  • 使用 () 分組(需轉(zhuǎn)義)
find /data \( -name "*.jpg" -o -name "*.png" \) -size +2M  # 查找 JPG 或 PNG 且大于 2MB
find . -type f ! -name "*.tmp"    # 排除所有 .tmp 文件

七、執(zhí)行后續(xù)動(dòng)作(-exec 與 xargs)

1. 直接執(zhí)行命令(-exec

find . -name "*.bak" -exec rm -f {} \;       # 刪除所有 .bak 文件(確認(rèn)無誤后執(zhí)行)
find /var/log -type f -mtime +30 -exec gzip {} \;  # 壓縮 30 天前的日志文件

2. 結(jié)合 xargs 提高效率

find /tmp -name "core.*" -print0 | xargs -0 rm -f  # 安全處理含空格文件名

3. 刪除文件(內(nèi)建動(dòng)作)

find . -type f -name "*.tmp" -delete        # 直接刪除(-delete 必須放在最后)

八、高級(jí)搜索場(chǎng)景

1. 查找占用 inode 的小文件

find /path -type f -size +0c -links 1 -exec ls -i {} \;  # 非硬鏈接的獨(dú)立文件

2. 查找重復(fù)文件(根據(jù) MD5)

find . -type f -exec md5sum {} + | sort | uniq -w32 -dD  # 生成校驗(yàn)和對(duì)比重復(fù)項(xiàng)

九、安全排查技巧

1. 搜索可疑 SUID/SGID 文件

find / -perm /4000 -user root 2>/dev/null   # SUID 且屬主為 root
find / -perm /2000 -group root 2>/dev/null  # SGID 且屬組為 root

2. 查找全局可寫文件

find / -xdev -type f -perm -0002 ! -perm -1000  # 忽略粘滯位目錄下的文件

十、性能優(yōu)化建議

限定搜索深度:-maxdepth 和 -mindepth

find /var/log -maxdepth 2 -name "*.log"   # 僅搜索兩層目錄

跳過特定文件系統(tǒng)-xdev(不跨文件系統(tǒng))

find / -xdev -name "lost+found"          # 僅在當(dāng)前文件系統(tǒng)搜索

總結(jié)

  • 核心模式find [路徑] [條件] [動(dòng)作],靈活組合條件實(shí)現(xiàn)精準(zhǔn)搜索。
  • 安全第一:執(zhí)行刪除或修改前,建議先用 -print 或 -ls 確認(rèn)目標(biāo)文件。
  • 效率優(yōu)先:在高負(fù)載場(chǎng)景下,盡量減少全盤掃描,合理使用 -xargs 提升性能。

到此這篇關(guān)于Linux find 命令完全指南的文章就介紹到這了,更多相關(guān)Linux find 命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論