Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux find 命令進階用法大全:查找、執行、屬性篩選實戰

編輯:Linux 教學

find 是 Linux 最強大的文件搜索工具,支持按名稱、時間、大小、權限、所有者等多維度組合查找,並可對結果執行任意命令。本文系統整理核心參數、實戰場景及配合 -exec 的自動化技巧。

核心語法

find [路徑] [表達式]

默認路徑為當前目錄,默認動作為 -print。

常用表達式分類速查

類別參數說明
時間-atime nn 天前被訪問
-mtime nn 天前被修改
-ctime nn 天前狀態改變
-amin/-cmin/-mmin n分鐘級別對應
-newer file比指定文件新
-anewer/-cnewer訪問/狀態比文件新
名稱/屬性-name pattern文件名匹配(支持通配符)
-size n[cwbkMG]文件大小(c=字節,k=KB,M=MB,G=GB)
-type [bcdpflsD]類型:塊/字符設備、目錄、管道、常規文件、符號鏈接、Socket
-perm [+-]mode權限匹配
-user/-group name所有者/組名
用戶/組-uid/-gid n數字 ID
-nouser/-nogroup無對應用戶/組的文件

實戰範例

  • 查找 /var/log 下大小為 0 的文件並刪除:
    find /var/log -size 0 -exec rm -rf {} \;
  • 查找最近 7 天修改過的 .log 文件:
    find / -name "*.log" -mtime -7
  • 查找屬於用戶 www 且大於 100MB 的文件:
    find / -user www -size +100M

-exec 進階用法

  • -exec cmd {} \;:逐個執行(每個文件 fork 一次進程)
  • -exec cmd {} +:批量執行(類似 xargs,高效)
  • -ok cmd {} \;:執行前交互確認

配合其他命令

find / -type f -name "*.tmp" -exec rm -f {} +  # 批量刪除臨時文件
find /home -user nginx -exec chown www:www {} \;  # 批量修改所有者
Copyright © Windows教程網 All Rights Reserved