Linux 操做命令 find

Linux Shell 操做命令 目錄總覽(點擊查看詳細信息)

 
 

一、簡介

    find 命令主要做用是沿着文件層次結構向下遍歷、匹配符合條件的文件,並 執行相應的操做
    php

二、用法/命令格式

find [-H] [-L] [-P] [-D {debugopts}] [-O {level}] [starting-point...] [expression]

    

三、經常使用參數解析 -- 參數 選項

    -H、-L 和 -P 選項 用於 符號 鏈接 處理;若是 搜索 路徑 沒有 被 指定,則默認 當前 所在 路徑 爲 搜索路徑
    shell

四、經常使用參數解析 -- 表達式

    搜索 路徑 以後的 一連串的表達式 用於 匹配 搜索 的結果;若是 沒有 表達式,則 默認 -print 參數 表達式
    express

4.1 Actions -- 執行 表達式

    執行 表達式 通常 會有 反作用(例如 打印 一些 信息 輸出到 標準輸出 )而且 返回 true or false (取決於 執行 是否 成功);例如 -print 將 信息 輸出到 標準輸出
    ide

4.1.1 -print

    默認 -print 參數
    測試

4.1.2 -exec

    -exec 是 find 命令對找到的文件執行的動做,這個動做就是對找到的文件執行命令;在這裏說明一下{}和;,{}其實它就是一個佔位符,在 find 命令的執行過程當中會不斷地替換成當前找到的文件;而";" 是-exec 的命令結束標記,由於規定-exec 後面的命令必須以;結束,但;在 shell 中有特殊含義,必需要轉義,因此寫成\;
    命令行

4.2 Global options -- 全局 表達式

    全局表達式 影響 任何 結果輸出,一般 返回 true
    debug

4.2.1 -type

    字母 "f" 表示該文件是一個普通文件
    字母 "l" 表示該文件是一個連接文件
    字母 "b" 表示該文件是塊設備文件(block),通常置於/dev目錄下,設備文件是普通文件和程序訪問硬件設備的入口,一類特殊文件
    字母 "c" 表示該文件是一個字符設備文件(character)
    字母 "d" 表示該文件是一個目錄
    字母 "p" 表示該文件爲命令管道文件
    字母 "s" 表示該文件爲sock文件
    code

4.3 Positional options -- 位置(正則) 表達式

    通常不會 太複雜,暫不詳細解釋
    blog

4.4 Operators -- 邏輯 表達式

    -and:匹配若是操做符兩邊的測試條件都是真。能夠簡寫爲-a。注意若沒有使用操做符,則默認使用-and
    -or:匹配若操做符兩邊的任一個測試條件爲真。能夠簡寫爲 -o
    -not:匹配若操做符後面的測試條件是假。能夠簡寫爲一個感吸號(!)
    ():把測試條件和操做符組合起來造成更大的表達式。這用來控制邏輯計算的優先級。默認狀況下, find命令按照!從左到右的順序計算。常常有必要重寫默認的求值順序,以獲得指望的結果。即便沒有必要,有時候包括組合起來的字符,對提升命令的可讀性是頗有幫助的。注意由於圓括號字符對於shell來講有特殊含義,因此在命令行中使用它們的時候,它們必須用引號引發來,才能做爲實參傳遞給find命令。一般反斜槓字符被用來轉義圓括號字符
    get

五、範例

5.1 打印 當前 目錄 文件 列表信息

## -print 也可 不寫,通常 默認 打印  
# find . [-print]

    

5.2 模糊 匹配

## -i : 忽略 大小寫
## *、? : 模糊匹配,* 匹配 多個 任意字符, ? 匹配 單個 任意字符
# find . [-i] -name "*.tx?" [-print]

    

5.3 多個 文件 類型查找

## -or : 邏輯 或
## !: 邏輯 非
# find . \( -name "*.txt" -or ! -name ".csv" \)

    

5.4 聯合 查找 並 查看 相信 信息

## -perm: 用戶權限
## -user: 用戶名 
# find  .  -type f \( -name "*.php" -perm 777 -or ! -user root \) -exec ls -l {} \;

    

5.5 查找 大文件

# find . -type f -size +800M
相關文章
相關標籤/搜索