find 命令(一)
find 命令主要作用是沿着文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操作。Linux 下 find 命令提供了相當多的查找條件,功能很強大,對應的學習難度也比較大。
(1)命令格式
find [選項] [搜索路徑] [表達式]
默認路徑是當前目錄,默認表達式爲-print。表達式可能由下列成份組成:操作符、選項、測試表達式以及動作。
(2)常用參數
參數 | 描述 |
---|---|
find 命令將匹配的文件輸出到標準輸出 | |
-exec | find 命令對匹配的文件執行該參數所給出的 shell 命令 |
-name | 按照文件名查找文件 |
-type | 查找某一類型的文件 |
-prune | 使用這一選項可以使 find 命令不在當前指定的目錄中查找,如果同 時使用-depth 選項,那麼-prune 將被 find 命令忽略 |
-user | 按照文件屬主來查找文件 |
-group | 按照文件所屬的組來查找文件 |
-mtime -n +n | 按照文件的更改時間來查找文件,-n 表示文件更改時間距現在小於 n天,+n 表示文件更改時間距現在大於 n 天,find 命令還有-atime 和 -ctime 選項 |
(3)常用範例
例一:打印當前目錄下的文件目錄列表 ,可以使用如下命令:
find . -print
例二:打印當前目錄下所有以.txt 結尾的文件名 ,可以使用如下命令(截圖只顯示部分):
find . -name "*.txt" -print
-iname 選項跟-name 選項作用一樣,不同在於-iname 會忽略字母大小寫。
例三:打印當前目錄下所有以.txt 或.pdf 結尾的文件名 ,可以使用如下命令(截圖只顯示部分):
find . \( -name "*.pdf" -or -name "*.txt" \)
例四:打印當前目錄下所有不以.txt 結尾的文件名 ,可以使用如下命令:
find . ! -name "*.txt"