Linux find 命令完全指南

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


一、基礎搜索模式

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

<BASH>

find /path -name "*.log"       # 精確匹配 .log 后綴(區分大小寫)
find /home -iname "*.TXT"      # 模糊匹配 .txt 后綴(忽略大小寫)
find . -name "data_[0-9].csv"  # 使用通配符 [] ? * 匹配
2. 排除指定目錄/文件
 

<BASH>

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

二、根據文件類型篩選

使用 -type 篩選文件類型:

  • f: 常規文件
  • d: 目錄
  • l: 符號鏈接
  • s: 套接字
  • p: 命名管道
 

<BASH>

find /opt -type d -name "config"        # 搜索名為 config 的目錄
find ~/ -type f -empty                  # 查找當前用戶下空文件
find /tmp -type l -ls                  # 列出 /tmp 下所有符號鏈接詳細信息

三、時間維度搜索

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

  • +n: n 天前
  • -n: 最近 n 天內
  • n: 正好 n 天前
 

<BASH>

find . -mtime -7           # 查找過去 7 天內修改過的文件
find /var/log -mtime +30 -name "*.log"  # 搜索 30 天前的日志文件
按分鐘級精準控制(-mmin):
 

<BASH>

find /tmp -mmin -10       # 查找過去 10 分鐘內修改的文件

四、文件大小搜索

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

  • +n: 大于 n
  • -n: 小于 n
  • n?: 等于 n
 

<BASH>

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

五、權限與所有權過濾

1. 按權限位搜索(數字或符號模式)
 

<BASH>

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

<BASH>

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

六、組合條件與邏輯操作

  • -a?(-and): 邏輯與(默認)
  • -o?(-or) : 邏輯或
  • !?(-not) : 邏輯非
  • 使用?()?分組(需轉義)
 

<BASH>

find /data \( -name "*.jpg" -o -name "*.png" \) -size +2M  # 查找 JPG 或 PNG 且大于 2MB
find . -type f ! -name "*.tmp"    # 排除所有 .tmp 文件

七、執行后續動作(-exec?與?xargs

1. 直接執行命令(-exec
 

<BASH>

find . -name "*.bak" -exec rm -f {} \;       # 刪除所有 .bak 文件(確認無誤后執行)
find /var/log -type f -mtime +30 -exec gzip {} \;  # 壓縮 30 天前的日志文件
2. 結合?xargs?提高效率
 

<BASH>

find /tmp -name "core.*" -print0 | xargs -0 rm -f  # 安全處理含空格文件名
3. 刪除文件(內建動作)
 

<BASH>

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

八、高級搜索場景

1. 查找占用 inode 的小文件
 

<BASH>

find /path -type f -size +0c -links 1 -exec ls -i {} \;  # 非硬鏈接的獨立文件
2. 查找重復文件(根據 MD5)
 

<BASH>

find . -type f -exec md5sum {} + | sort | uniq -w32 -dD  # 生成校驗和對比重復項

九、安全排查技巧

1. 搜索可疑 SUID/SGID 文件
 

<BASH>

find / -perm /4000 -user root 2>/dev/null   # SUID 且屬主為 root
find / -perm /2000 -group root 2>/dev/null  # SGID 且屬組為 root
2. 查找全局可寫文件
 

<BASH>

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

十、性能優化建議

  • 限定搜索深度-maxdepth?和?-mindepth
     

    <BASH>

    find /var/log -maxdepth 2 -name "*.log"   # 僅搜索兩層目錄
    
  • 跳過特定文件系統-xdev(不跨文件系統)
     

    <BASH>

    find / -xdev -name "lost+found"          # 僅在當前文件系統搜索
    

總結

  • 核心模式find [路徑] [條件] [動作],靈活組合條件實現精準搜索。
  • 安全第一:執行刪除或修改前,建議先用?-print?或?-ls?確認目標文件。
  • 效率優先:在高負載場景下,盡量減少全盤掃描,合理使用?-xargs?提升性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73413.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【量化策略】趨勢跟蹤策略

【量化策略】趨勢跟蹤策略 &#x1f680;量化軟件開通 &#x1f680;量化實戰教程 技術背景與應用場景 在金融市場中&#xff0c;趨勢跟蹤策略是一種基于市場趨勢進行交易的量化投資方法。該策略的核心思想是“順勢而為”&#xff0c;即認為市場價格會沿著一定的方向持續移…

AI自動化、資本短視、三輸與破局

當前AI應用中的一個深層矛盾&#xff1a;工程師使用AI將很專業的任務變成小白可以操作的工作&#xff0c;然后資本方給小白很少的錢把工程師裁掉了&#xff0c;然而小白不懂底層&#xff0c;出問題幾乎無法修復。由此&#xff0c;技術普及與專業能力之間的斷層引發了"三輸…

Python數據分析之數據可視化

Python 數據分析重點知識點 本系列不同其他的知識點講解&#xff0c;力求通過例子讓新同學學習用法&#xff0c;幫助老同學快速回憶知識點 可視化系列&#xff1a; Python基礎數據分析工具數據處理與分析數據可視化機器學習基礎 四、數據可視化 圖表類型與選擇 根據數據特…

簡述計算機網絡中的七層模型和四層模型

在計算機網絡中&#xff0c;網絡協議棧的設計通常采用分層結構來處理不同的通信任務。常見的分層結構有OSI七層模型和TCP/IP四層模型。雖然它們的層次數量不同&#xff0c;但本質上都在解決如何有效地進行計算機間通信。本文將分別介紹這兩種結構的功能和各層的協議。 一、OSI七…

2025高頻面試算法總結篇【持續更新中】

文章目錄 遞歸&回溯131. 分割回文串面試題 08.12. 八皇后 動態規劃72編輯距離5. 最長回文子串279. 完全平方數300. 最長遞增子序列 遞歸&回溯 131. 分割回文串 回溯思路&#xff1a; 臨界條件&#xff1a; if (start s.length) > 保存 循環遍歷這個字串 for (int…

【大模型學習】第二十二章 什么是對抗生成網絡

目錄 一、背景介紹 二、生活化例子說明什么是對抗生成網絡 三、技術細節詳解 &#xff08;一&#xff09;基本概念 &#xff08;二&#xff09;訓練機制 &#xff08;三&#xff09;損失函數 一、背景介紹 對抗生成網絡&#xff08;Generative Adversarial Networks, GANs…

攝像頭模塊ISP處理流程

攝像頭模塊的ISP&#xff08;圖像信號處理器&#xff09;處理流程是對圖像傳感器輸出的原始信號進行系統性優化的過程&#xff0c;主要分為以下關鍵步驟及對應功能模塊&#xff1a; 一、原始信號輸入與預處理 ?傳感器信號捕獲? CMOS/CCD傳感器將光信號轉換為模擬電信號&…

linux系統安裝和激活conda

安裝 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash ./Miniconda3-latest-Linux-x86_64.sh回車到最后按照輸入yes&#xff0c;之后按提示操作。 激活 conda activate如果沒有反應或者返回&#xff1a; bash: conda: command not found則…

(全)2024下半年真題 系統架構設計師 綜合知識 答案解析02

系統架構設計師第二版教程VIP課程https://edu.csdn.net/course/detail/40283 面向對象技術 在UML用例圖中&#xff0c;參與者之間存在 關系。 A. 聚合 B. 包含 C. 繼承 D. 擴展 答案&#xff1a;C 解析&#xff1a;用例圖描述了一組用例、參與者以及它們之間的關系…

【學習筆記】《逆向工程核心原理》03.abex‘crackme-2、函數的調用約定、視頻講座-Tut.ReverseMe1

文章目錄 abexcrackme-21. Visual Basic文件的特征1.1. VB專用引擎1.2. 本地代碼與偽代碼1.3. 事件處理程序1.4. 未文檔化的結構體 2. 開始調試2.1. 間接調用2.2. RT_MainStruct結構體2.3. ThunRTMain()函數 3. 分析crackme3.1. 檢索字符串3.2. 查找字符串地址3.3. 生成Serial的…

深入解析Go語言Channel:源碼剖析與并發讀寫機制

文章目錄 Channel的內部結構Channel的創建過程有緩沖Channel的并發讀寫機制同時讀寫的可能性發送操作的實現接收操作的實現 并發讀寫的核心機制解析互斥鎖保護環形緩沖區等待隊列直接傳遞優化Goroutine調度 實例分析&#xff1a;有緩沖Channel的并發讀寫性能優化與最佳實踐緩沖…

初識Linux(14)Ext系列?件系統

之前談論的都是已打開文件在操作系統的中的管理&#xff0c;但是還有更多的文件沒有被打開&#xff0c;被存在磁盤中&#xff0c;如何管理這些磁盤中的文件&#xff0c;就是本篇的學習目標。 目錄 1.理解硬件 磁盤結構 扇區的讀寫 CHS地址定位 磁盤的邏輯結構 2. 引??件…

電機控制常見面試問題(十二)

文章目錄 一.電機鎖相環1.理解鎖相環2.電機控制中的鎖相環應用3.數字鎖相環&#xff08;DPLL&#xff09; vs 模擬鎖相環&#xff08;APLL&#xff09;4.鎖相環設計的關鍵技術挑戰5.總結 二、磁鏈觀測1.什么是磁鏈&#xff1f;2.為什么要觀測磁鏈&#xff1f;3.怎么觀測磁鏈&am…

Android `%d` 與 `1$%d` 格式化的區別

在 Android 開發中&#xff0c;我們經常需要對字符串進行格式化處理&#xff0c;比如動態填充數字、日期、字符等。 其中&#xff0c;%d 和 1$%d 都是格式化占位符&#xff0c;但它們在使用上有一些不同。 本文將詳細解析這兩者的區別&#xff0c;并結合 Kotlin 代碼示例幫助你…

SpringBoot中使用kaptcha生成驗證碼

簡介 kaptcha是谷歌開源的簡單實用的驗證碼生成工具。通過設置參數&#xff0c;可以自定義驗證碼大小、顏色、顯示的字符等等。 Maven引入依賴 <!-- https://mvnrepository.com/artifact/pro.fessional/kaptcha --><dependency><groupId>pro.fessional<…

如何在PHP中實現數據加密與解密:保護敏感信息

如何在PHP中實現數據加密與解密&#xff1a;保護敏感信息 在現代Web開發中&#xff0c;數據安全是一個至關重要的議題。無論是用戶的個人信息、支付數據&#xff0c;還是其他敏感信息&#xff0c;都需要在存儲和傳輸過程中進行加密&#xff0c;以防止數據泄露和惡意攻擊。PHP作…

單元測試、系統測試、集成測試、回歸測試的步驟、優點、缺點、注意點梳理說明

單元測試、系統測試、集成測試、回歸測試的梳理說明 單元測試 步驟&#xff1a; 編寫測試用例&#xff0c;覆蓋代碼的各個分支和邊界條件。使用測試框架&#xff08;如JUnit、NUnit&#xff09;執行測試。檢查測試結果&#xff0c;確保代碼按預期運行。修復發現的缺陷并重新測…

C++能力測試題

以下是一些C能力測試題&#xff0c;涵蓋了從基礎語法到高級特性的多個方面&#xff1a; 選擇題 1. 下面關于RTTI的說法&#xff0c;正確的是&#xff1f; A. 使用typeid前必須包含<type_info>頭文件。 B. typeid只能用于多態類型或表達式。 C. typeid可以用于不完整類型…

模擬類似 DeepSeek 的對話

以下是一個完整的 JavaScript 數據流式獲取實現方案&#xff0c;模擬類似 DeepSeek 的對話式逐段返回效果。包含前端實現、后端模擬和詳細注釋&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…

【訓練細節解讀】文本智能混合分塊(Mixtures of Text Chunking,MoC)引領RAG進入多粒度感知智能分塊階段

RAG系統在處理復雜上下文時,傳統和語義分塊方法的局限性,文本分塊的質量限制了檢索到的內容,從而影響生成答案的準確性。盡管其他算法組件有所進步,但分塊策略中的增量缺陷仍可能在一定程度上降低整體系統性能。如何直接量化分塊質量?如何有效利用大型語言模型(LLMs)進行…