最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux文件搜索神器之Find命令的使用完全指南

 更新時(shí)間:2026年04月17日 08:44:21   作者:蒙眼過河  
find命令是Linux系統(tǒng)中最強(qiáng)大的文件搜索工具,可以按名稱、大小、時(shí)間等多種維度篩選文件,它支持基礎(chǔ)和高級(jí)用法,下面小編就和大家詳細(xì)介紹一下吧

在 Linux 系統(tǒng)中,面對海量的文件和目錄,如何快速精準(zhǔn)地找到你需要的那個(gè)文件?find命令就是你手中的“探照燈”。它不僅能按名稱查找,還能根據(jù)時(shí)間、大小、權(quán)限甚至文件類型進(jìn)行搜索,更能結(jié)合 Shell 命令實(shí)現(xiàn)自動(dòng)化運(yùn)維、批量處理等高階操作。

1. 核心語法

find 命令的基本結(jié)構(gòu)簡單且靈活,是所有用法的基礎(chǔ):

find [起始目錄] [查找選項(xiàng)] [匹配條件] [執(zhí)行動(dòng)作]

  • 起始目錄:搜索的根路徑(.=當(dāng)前目錄,/=系統(tǒng)根目錄,/home=指定家目錄);
  • 查找選項(xiàng):篩選規(guī)則(文件名、大小、類型、時(shí)間等);
  • 匹配條件:精確過濾(支持邏輯與/或/非);
  • 執(zhí)行動(dòng)作:找到文件后執(zhí)行的操作(默認(rèn)-print打印路徑,支持刪除、修改、執(zhí)行腳本等)。

基礎(chǔ)原則:先限定目錄,再精準(zhǔn)篩選,最后安全執(zhí)行操作。

2. 常用查找方法速查表

查找維度常用參數(shù)參數(shù)說明
按名稱-name, -iname-iname 忽略大小寫匹配
按類型-type f/d/l/b/s/p/cf=文件, d=目錄, l=軟鏈接, b=塊設(shè)備
按大小-size +10k/M/G/c+大于, -小于, 無符號(hào)=等于
按時(shí)間-mtime/-atime/-ctime修改/訪問/狀態(tài)時(shí)間,單位天
按分鐘時(shí)間-mmin/-amin/-cmin修改/訪問/狀態(tài)時(shí)間,單位分鐘
按權(quán)限-perm 755/-perm /u+x精確權(quán)限/模糊權(quán)限匹配
按用戶/組-user/-group匹配文件歸屬者/歸屬組
邏輯運(yùn)算符-a(與), -o(或), !(非)多條件組合篩選

3. 基礎(chǔ)實(shí)戰(zhàn)場景詳解

3.1 按名稱與路徑查找

最常用的基礎(chǔ)場景,適配模糊匹配、路徑包含、多后綴篩選:

# 1. 忽略大小寫查找所有 .txt 文件
find /home -iname "*.txt"

# 2. 查找路徑中包含 "local" 的所有文件/目錄
find /usr/ -path "*local*"

# 3. 多后綴匹配(查找 .txt 或 .pdf 文件,-o 代表或)
find . -type f \( -name "*.txt" -o -name "*.pdf" \)

# 4. 排除指定目錄查找(排除 node_modules 目錄)
find . -path "./node_modules" -prune -o -name "*.js" -print

3.2 按文件大小查找

磁盤清理、歸檔大文件必備:

# 查找大于 10KB 的普通文件
find . -type f -size +10k

# 查找小于 100M 的日志文件
find /var/log -type f -size -100M

# 查找 500M~1G 之間的備份文件
find /backup -type f -size +500M -size -1G

單位說明:c(字節(jié))、k(KB)、M(MB)、G(GB)。

3.3 按時(shí)間戳查找

Linux 文件三大時(shí)間戳:

  • atime:訪問時(shí)間(打開文件)
  • mtime:修改時(shí)間(修改文件內(nèi)容)
  • ctime:狀態(tài)時(shí)間(修改權(quán)限/歸屬)
# 最近 7 天內(nèi)修改過的文件
find . -type f -mtime -7

# 最近 30 分鐘內(nèi)訪問過的配置文件
find /etc -type f -amin -30

# 超過 30 天未修改、大于 100M 的過期日志(清理專用)
find /var/log -name "*.log" -mtime +30 -size +100M

3.4 按權(quán)限與所有權(quán)

安全排查、權(quán)限修復(fù)必備:

# 查找權(quán)限 777 的不安全文件
find . -type f -perm 777

# 查找用戶 tom 擁有的所有文件
find . -type f -user tom

# 查找非 644 權(quán)限的 PHP 文件(! 代表非)
find . -type f -name "*.php" ! -perm 644

# 模糊權(quán)限匹配:查找所有用戶可執(zhí)行的文件
find . -type f -perm /a+x

3.5 基礎(chǔ)批量處理(-exec / -delete)

找到文件后直接執(zhí)行操作,無需手動(dòng)復(fù)制路徑:

# 安全刪除臨時(shí)文件(-delete 比 rm 更安全,默認(rèn)跳過目錄)
find . -type f -name "*.tmp" -delete

# 批量給腳本添加執(zhí)行權(quán)限
find . -type f -name "*.sh" -exec chmod +x {} \;

# 查找日志文件并顯示詳細(xì)信息
find . -name "*.log" -exec ls -lh {} \;

4. Find 命令高階用法(核心進(jìn)階)

這部分是運(yùn)維/開發(fā)必備高階技能,解決復(fù)雜篩選、批量處理、性能優(yōu)化問題。

4.1 邏輯組合與復(fù)雜篩選

多條件精準(zhǔn)過濾,必須掌握括號(hào)()和運(yùn)算符:

# 查找:7天內(nèi)修改 且 大于50M 且 后綴為.log 的文件
find . -type f -mtime -7 -size +50M -name "*.log"

# 查找:(txt或pdf) 且 小于10k 的文件
find . -type f \( -name "*.txt" -o -name "*.pdf" \) -size -10k

# 排除多個(gè)目錄:排除 dist、node_modules、build 目錄查找 .js 文件
find . \( -path "./dist" -o -path "./node_modules" -o -path "./build" \) -prune -o -name "*.js" -print

4.2 基于文件內(nèi)容結(jié)合搜索

find + grep 強(qiáng)強(qiáng)聯(lián)合:先找文件,再搜內(nèi)容

# 查找當(dāng)前目錄下所有 .conf 文件,且文件內(nèi)包含 "root" 字符串
find . -type f -name "*.conf" -exec grep -l "root" {} \;

# 查找 /var/log 下 .log 文件,且包含 "ERROR" 關(guān)鍵字
find /var/log -name "*.log" -exec grep -l "ERROR" {} \;

-l:grep 只打印匹配到的文件名,不顯示具體內(nèi)容。

4.3 批量復(fù)制/移動(dòng)文件

批量歸檔、備份文件,告別手動(dòng)復(fù)制:

# 查找所有 .jpg 圖片,批量復(fù)制到 /backup/images 目錄
find . -type f -name "*.jpg" -exec cp {} /backup/images \;

# 查找 30天前的日志,批量移動(dòng)到 /archive 目錄
find /var/log -name "*.log" -mtime +30 -exec mv {} /archive \;

4.4 空文件/空目錄清理

系統(tǒng)清理常用,刪除無用空文件/目錄:

# 查找所有空文件(大小為0)
find . -type f -empty

# 查找所有空目錄
find . -type d -empty

# 直接刪除所有空目錄(安全:先執(zhí)行上一條確認(rèn),再刪除)
find . -type d -empty -delete

4.5 最大/最小搜索深度

避免遞歸過深,提升搜索速度:

# 只在當(dāng)前目錄(1級(jí))查找 .txt,不進(jìn)入子目錄
find . -maxdepth 1 -name "*.txt"

# 從2級(jí)目錄到5級(jí)目錄查找 .jar 包
find . -mindepth 2 -maxdepth 5 -name "*.jar"

4.6 按索引節(jié)點(diǎn)(inode)查找

解決文件名亂碼、特殊字符無法刪除的問題:

# 查看文件 inode 號(hào)
ls -i 文件名

# 根據(jù) inode 號(hào)刪除文件
find . -inum 123456 -delete

4.7 結(jié)合 xargs 高效處理

-exec 適合單文件操作,xargs 適合批量處理,性能更高

# 批量查找 .log 文件并壓縮
find . -type f -name "*.log" | xargs gzip

# 批量刪除 .tmp 文件(支持大量文件,無參數(shù)過長問題)
find . -type f -name "*.tmp" | xargs rm -f

5. 企業(yè)級(jí)高級(jí)實(shí)戰(zhàn)

實(shí)戰(zhàn)1:查找包含特定類名的 Jar 包

Java 開發(fā)/運(yùn)維高頻場景:在海量 Jar 包中定位包含指定類的文件:

find . -name "*.jar" -exec sh -c 'jar tf "$0" 2>/dev/null | grep -q "Gateway" && echo "$0"' {} \;

執(zhí)行邏輯

  1. 遞歸查找所有 .jar 文件;
  2. jar tf 列出包內(nèi)文件,忽略錯(cuò)誤輸出;
  3. 靜默搜索 Gateway 類,找到則打印 Jar 包路徑。

實(shí)戰(zhàn)2:批量修改文件歸屬+權(quán)限(服務(wù)器權(quán)限修復(fù))

服務(wù)器被入侵后,批量修復(fù)文件權(quán)限/歸屬:

# 查找 /var/www 下所有目錄,設(shè)置權(quán)限 755
find /var/www -type d -exec chmod 755 {} \;

# 查找 /var/www 下所有文件,設(shè)置權(quán)限 644
find /var/www -type f -exec chmod 644 {} \;

# 批量修改文件歸屬為 www 用戶和組
find /var/www -exec chown www:www {} \;

實(shí)戰(zhàn)3:定時(shí)清理過期備份文件(自動(dòng)化腳本)

寫入 crontab 定時(shí)任務(wù),自動(dòng)清理7天前的備份,防止磁盤爆滿:

# 查找 /data/backup 下3天前的 .tar.gz 備份并刪除
find /data/backup -type f -name "*.tar.gz" -mtime +3 -delete

實(shí)戰(zhàn)4:查找并統(tǒng)計(jì)大文件數(shù)量+大小

磁盤容量告警時(shí),快速分析大文件分布:

# 查找大于 1G 的文件,統(tǒng)計(jì)數(shù)量
find / -type f -size +1G | wc -l

# 查找大于 500M 的文件,顯示詳細(xì)大小和路徑
find / -type f -size +500M -exec ls -lh {} \;

實(shí)戰(zhàn)5:查找特殊權(quán)限文件(SUID/SGID 安全排查)

排查系統(tǒng)高危權(quán)限文件,防止提權(quán)漏洞:

# 查找所有設(shè)置 SUID 權(quán)限的文件
find / -perm -u+s -type f 2>/dev/null

# 查找所有設(shè)置 SGID 權(quán)限的目錄
find / -perm -g+s -type d 2>/dev/null

6. 安全小貼士與性能優(yōu)化

  1. 安全第一:使用 -delete/-exec rm 前,先不加執(zhí)行動(dòng)作預(yù)覽文件,確認(rèn)無誤再操作;
  2. 轉(zhuǎn)義規(guī)則:括號(hào)()、邏輯符-o必須加轉(zhuǎn)義或引號(hào),避免 Shell 解析錯(cuò)誤;
  3. 性能優(yōu)化
    • -maxdepth 限制搜索深度,減少遞歸;
    • 避免從 / 根目錄全盤掃描,指定具體目錄;
    • 大量文件處理優(yōu)先用 xargs,替代 -exec;
  4. 錯(cuò)誤屏蔽:系統(tǒng)目錄搜索時(shí),加 2>/dev/null 忽略權(quán)限不足報(bào)錯(cuò)。

總結(jié)

  1. find 是 Linux 最強(qiáng)大的文件搜索工具,支持多維度篩選+批量處理;
  2. 基礎(chǔ)用法滿足日常查找,高階用法適配運(yùn)維自動(dòng)化、安全排查、批量操作;
  3. 結(jié)合 grep/xargs/jar 等命令,可解決企業(yè)級(jí)復(fù)雜場景問題;
  4. 操作前務(wù)必預(yù)覽文件,謹(jǐn)慎執(zhí)行刪除/修改操作

以上就是Linux文件搜索神器之Find命令的使用完全指南的詳細(xì)內(nèi)容,更多關(guān)于Linux Find文件搜索的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決虛擬機(jī)NAT模式無法上網(wǎng)問題

    解決虛擬機(jī)NAT模式無法上網(wǎng)問題

    文章主要介紹了確認(rèn)虛擬機(jī)網(wǎng)絡(luò)連接問題的兩個(gè)步驟:首先檢查虛擬機(jī)的IP地址是否與主機(jī)在同一網(wǎng)段,其次確保虛擬機(jī)相關(guān)服務(wù)已開啟
    2024-12-12
  • 總結(jié)Linux 6種日志查看方法

    總結(jié)Linux 6種日志查看方法

    在本篇文章里小編給大家整理的是關(guān)于Linux 6種日志查看方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 詳解Linux下你所不知道的7個(gè)SSH命令用法

    詳解Linux下你所不知道的7個(gè)SSH命令用法

    這篇文章主要介紹了Linux SSH命令,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Ubuntu25.10藍(lán)牙Wifi不可用的解決過程

    Ubuntu25.10藍(lán)牙Wifi不可用的解決過程

    本文作者分享了解決古董筆記本安裝Ubuntu25.10后,藍(lán)牙和WiFi無法正常啟動(dòng)的問題的過程,詳細(xì)記錄了查找、下載、加載固件及驅(qū)動(dòng)簽名注冊等步驟
    2026-05-05
  • Linux兩臺(tái)服務(wù)器之間傳輸文件和文件夾操作步驟

    Linux兩臺(tái)服務(wù)器之間傳輸文件和文件夾操作步驟

    在本篇文章里小編給大家分享了關(guān)于Linux兩臺(tái)服務(wù)器之間傳輸文件和文件夾操作步驟以及注意點(diǎn),需要的朋友們跟著學(xué)習(xí)下。
    2019-02-02
  • Linux刪除Systemd服務(wù)的完整步驟

    Linux刪除Systemd服務(wù)的完整步驟

    本文介紹了如何停止、禁用、刪除systemd服務(wù),包括停止服務(wù)、禁用服務(wù)、刪除服務(wù)文件、重新加載Systemd配置以及驗(yàn)證服務(wù)已刪除等步驟,同時(shí),還強(qiáng)調(diào)了檢查服務(wù)狀態(tài)、清理日志等注意事項(xiàng),需要的朋友可以參考下
    2026-04-04
  • Ubuntu解除文件鎖定的幾種方法

    Ubuntu解除文件鎖定的幾種方法

    在Ubuntu中,解除文件鎖定的方法取決于文件被哪個(gè)進(jìn)程鎖定,本文給大家介紹了幾種常見的解除文件鎖定的方法,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2025-06-06
  • linux下安裝boost庫的完整步驟記錄

    linux下安裝boost庫的完整步驟記錄

    Boost庫是一個(gè)經(jīng)過千錘百煉、可移植、提供源代碼的C++庫,,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的發(fā)動(dòng)機(jī)之一,下面這篇文章主要給大家介紹了關(guān)于如何在linux下安裝boost庫的完整步驟,需要的朋友可以參考下
    2018-11-11
  • Linux服務(wù)器磁盤空間不足的排查與處理方法

    Linux服務(wù)器磁盤空間不足的排查與處理方法

    在日常維護(hù) Linux 服務(wù)器時(shí),我們經(jīng)常會(huì)遇到這樣的場景:系統(tǒng)報(bào)錯(cuò)提示磁盤空間不足,今天就以一次真實(shí)的排查過程為例,分享如何科學(xué)地處理大文件與日志,需要的朋友可以參考下
    2025-12-12
  • linux下怎樣用命令啟動(dòng)docker服務(wù)

    linux下怎樣用命令啟動(dòng)docker服務(wù)

    這篇文章主要介紹了linux下怎樣用命令啟動(dòng)docker服務(wù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

保山市| 城固县| 汾西县| 武清区| 南岸区| 广灵县| 康马县| 永济市| 平定县| 望城县| 沂水县| 阳信县| 新乡县| 滁州市| 孝感市| 祁阳县| 舞钢市| 雷山县| 邹平县| 库伦旗| 班玛县| 鹤山市| 松江区| 昌江| 太白县| 库车县| 类乌齐县| 莲花县| 垣曲县| 都匀市| 霍邱县| 车致| 安徽省| 长武县| 尚志市| 维西| 阳朔县| 麦盖提县| 兴业县| 吉木乃县| 丽水市|