find 命令是 Linux/Unix 系統(tǒng)中非常常用的一種命令,用于在指定目錄及其子目錄中查找文件并進(jìn)行相應(yīng)的操作。下面是 find 命令的詳細(xì)介紹:
基本語(yǔ)法
cssCopy code
find [path] [expression]
其中,path 表示要查找的目錄或文件,可以是相對(duì)路徑或絕對(duì)路徑;expression 表示查找的條件,例如按名稱查找、按類型查找、按大小查找等等。
常用參數(shù)
-name pattern:按名稱查找文件,pattern 表示文件名的模式,支持通配符,例如 *.txt。
-type type:按類型查找文件,type 表示文件類型,例如 f 表示普通文件,d 表示目錄。
-size size:按文件大小查找文件,size 表示文件大小,支持多種單位,例如 10M 表示 10MB,+10M 表示大于 10MB。
-mtime days:按修改時(shí)間查找文件,days 表示天數(shù),-n 表示修改時(shí)間在 n 天以內(nèi),+n 表示修改時(shí)間在 n 天以前。
-exec command {} \;:執(zhí)行命令,{} 表示查找到的文件名,\; 表示命令結(jié)束。
示例
1.查找當(dāng)前目錄下所有的文件和目錄:
find .
2.查找當(dāng)前目錄下所有的文件,但不包括子目錄:
find . -maxdepth 1 -type f
3.查找 /usr/local 目錄下所有的 .txt 文件:
find /usr/local -name "*.txt"
4.查找 /usr/local 目錄下所有的 .txt 文件,但不包括子目錄:
find /usr/local -maxdepth 1 -name "*.txt"
5.查找 /usr/local 目錄下所有的 .txt 文件,并且文件大小大于 10MB:
find /usr/local -name "*.txt" -size +10M
6.查找 /usr/local 目錄下所有修改時(shí)間在 7 天以內(nèi)的 .txt 文件:
find /usr/local -name "*.txt" -mtime -7
7.查找 /usr/local 目錄下所有 .txt 文件,并將它們刪除:
find /usr/local -name "*.txt" -exec rm {} \;
注意事項(xiàng)
·find 命令默認(rèn)會(huì)查找指定目錄及其子目錄中的所有文件和目錄,如果不想查找子目錄,可以使用 -maxdepth 參數(shù)。
·find 命令查找到的文件名是相對(duì)路徑或絕對(duì)路徑,如果想要在執(zhí)行命令時(shí)使用相對(duì)路徑,需要將 {} 替換為 ./{}。
·-exec