find 命令主要做用是沿着文件層次結構向下遍歷、匹配符合條件的文件,並 執行相應的操做
php
find [-H] [-L] [-P] [-D {debugopts}] [-O {level}] [starting-point...] [expression]
-H、-L 和 -P 選項 用於 符號 鏈接 處理;若是 搜索 路徑 沒有 被 指定,則默認 當前 所在 路徑 爲 搜索路徑
shell
搜索 路徑 以後的 一連串的表達式 用於 匹配 搜索 的結果;若是 沒有 表達式,則 默認 -print 參數 表達式
express
執行 表達式 通常 會有 反作用(例如 打印 一些 信息 輸出到 標準輸出 )而且 返回 true or false (取決於 執行 是否 成功);例如 -print 將 信息 輸出到 標準輸出
ide
默認 -print 參數
測試
-exec 是 find 命令對找到的文件執行的動做,這個動做就是對找到的文件執行命令;在這裏說明一下{}和;,{}其實它就是一個佔位符,在 find 命令的執行過程當中會不斷地替換成當前找到的文件;而";" 是-exec 的命令結束標記,由於規定-exec 後面的命令必須以;結束,但;在 shell 中有特殊含義,必需要轉義,因此寫成\;
命令行
全局表達式 影響 任何 結果輸出,一般 返回 true
debug
字母 "f" 表示該文件是一個普通文件
字母 "l" 表示該文件是一個連接文件
字母 "b" 表示該文件是塊設備文件(block),通常置於/dev目錄下,設備文件是普通文件和程序訪問硬件設備的入口,一類特殊文件
字母 "c" 表示該文件是一個字符設備文件(character)
字母 "d" 表示該文件是一個目錄
字母 "p" 表示該文件爲命令管道文件
字母 "s" 表示該文件爲sock文件
code
通常不會 太複雜,暫不詳細解釋
blog
-and:匹配若是操做符兩邊的測試條件都是真。能夠簡寫爲-a。注意若沒有使用操做符,則默認使用-and
-or:匹配若操做符兩邊的任一個測試條件爲真。能夠簡寫爲 -o
-not:匹配若操做符後面的測試條件是假。能夠簡寫爲一個感吸號(!)
():把測試條件和操做符組合起來造成更大的表達式。這用來控制邏輯計算的優先級。默認狀況下, find命令按照!從左到右的順序計算。常常有必要重寫默認的求值順序,以獲得指望的結果。即便沒有必要,有時候包括組合起來的字符,對提升命令的可讀性是頗有幫助的。注意由於圓括號字符對於shell來講有特殊含義,因此在命令行中使用它們的時候,它們必須用引號引發來,才能做爲實參傳遞給find命令。一般反斜槓字符被用來轉義圓括號字符
get
## -print 也可 不寫,通常 默認 打印 # find . [-print]
## -i : 忽略 大小寫 ## *、? : 模糊匹配,* 匹配 多個 任意字符, ? 匹配 單個 任意字符 # find . [-i] -name "*.tx?" [-print]
## -or : 邏輯 或 ## !: 邏輯 非 # find . \( -name "*.txt" -or ! -name ".csv" \)
## -perm: 用戶權限 ## -user: 用戶名 # find . -type f \( -name "*.php" -perm 777 -or ! -user root \) -exec ls -l {} \;
# find . -type f -size +800M