Linux find命令的使用及常用參數

find命令簡介

find命令是linux下用於系統查找文件的強大工具,可以根據文件的大小,名稱,權限,修改日期等進行查詢,參考一些網上非常優秀的博客來進行一些簡單應用向的總結。首先是find命令的使用形式:

find paths expression actions

指定多條路徑(paths)執行指定過濾條件(expression)並執行相關操作(actions),最終得到結果。

使用find遍歷所有文件

以下代碼將遍歷當前目錄所有文件及目錄,以及子目錄下的文件及目錄
針對以下的目錄結果:

$ tree dir_tree
dir_tree
├── dir_1
│   ├── file_1.png
│   ├── file_1.sh
│   └── file_1.txt
├── dir_2
│   ├── file_2.png
│   ├── file_2.sh
│   └── file_2.txt
└── dir_3
    ├── file_3.png
    ├── file_3.sh
    └── file_3.txt

運行如下代碼,將遍歷所有文件

$ find dir_tree/
dir_tree/
dir_tree/dir_3
dir_tree/dir_3/file_3.sh
dir_tree/dir_3/file_3.txt
dir_tree/dir_3/file_3.png
dir_tree/dir_2
dir_tree/dir_2/file_2.sh
dir_tree/dir_2/file_2.txt
dir_tree/dir_2/file_2.png
dir_tree/dir_1
dir_tree/dir_1/file_1.png
dir_tree/dir_1/file_1.sh
dir_tree/dir_1/file_1.txt

使用find執行文件過濾

  • -name 將得到指定名稱的文件,可以使用通配符
  • -iname-name相同,但是是case insensitive大小寫不敏感
  • -path-ipath-name/-iname類似,但是提供全路徑的匹配
    --maxdepth/-mindepth提供最大和最小遍歷深度
  • -type指定文件類型 f文件/d目錄/l符號鏈接
  • -empty空文件
  • 取反
  • -user 用戶
  • -mtime/-atime/-ctime,修改/訪問/創建時間使用如下截圖
    在這裏插入圖片描述
  • -size 文件大小
  • -perm 例如 -perm 755 或者 -perm -u=rwx,g=rx,o=rx,如果只關注某一個權限,可以在前加一個斜槓,例如以下代碼將列出所有人都有read權限的文件
find dir_tree -perm /a=r -exec ls -ld {} \;
  • -a-o可以將這些命令進行and和or的組合,判斷複雜時需要加括號,而括號和判斷語句之間應該有一個空格相間隔,同時使用單引號包圍或者反斜槓進行轉義,如下例子將找到目錄下後綴爲sh和png的文件。
$ find dir_tree/ '(' -name "*.sh" -o -name "*.png" ')' -a -type f
dir_tree/dir_3/file_3.sh
dir_tree/dir_3/file_3.png
dir_tree/dir_2/file_2.sh
dir_tree/dir_2/file_2.png
dir_tree/dir_1/file_1.png
dir_tree/dir_1/file_1.sh

使用find對搜索結果執行命令

  • -delete 刪除操作
  • -exec 執行自定義命令,如下所示
$ find dir_tree/ '(' -name "*.sh" -o -name "*.png" ')' -a -type f -exec echo "cat {} > xxx" ';'
cat dir_tree/dir_3/file_3.sh > xxx
cat dir_tree/dir_3/file_3.png > xxx
cat dir_tree/dir_2/file_2.sh > xxx
cat dir_tree/dir_2/file_2.png > xxx
cat dir_tree/dir_1/file_1.png > xxx
cat dir_tree/dir_1/file_1.sh > xxx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章