在linux系統(tǒng)中,find命令是一種功能強(qiáng)大且靈活的工具,用于在文件系統(tǒng)中搜索文件和目錄。該命令提供了多種查找條件,使得用戶可以根據(jù)不同的屬性來定位目標(biāo)文件或目錄。
find命令的基本格式為:find pathname -options [-print -exec -ok…]
其中,pathname指定了find命令開始搜索的路徑。例如,/home/tools/tongyan。
以下是一些常用的選項(xiàng)及其功能:
- -print:將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
- -exec:對(duì)匹配的文件執(zhí)行指定的shell命令。命令格式為’command’ {} ;,其中{}表示find命令找到的文件名,;表示命令結(jié)束。
- -ok:與-exec類似,但執(zhí)行前會(huì)提示用戶確認(rèn)。
find命令的常用查找條件包括:
- -name filename:按文件名查找。
- -perm:按文件權(quán)限查找。
- -user username:按文件所有者查找。
- -group groupname:按文件所屬組查找。
- -mtime -n +n:按文件修改時(shí)間查找,-n表示n天以內(nèi),+n表示n天以前。
- -atime -n +n:按文件訪問時(shí)間查找。
- -ctime -n +n:按文件創(chuàng)建時(shí)間查找。
- -nogroup:查找無有效屬組的文件。
- -nouser:查找無有效屬主的文件。
- -newer f1 !f2:查找更改時(shí)間比f1新但比f2舊的文件。
- -type b/d/c/p/l/f:按文件類型查找,分別表示塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件。
- -size n[c]:按文件大小查找,n表示塊數(shù)或字節(jié)數(shù)。
- -depth:在進(jìn)入子目錄前先搜索當(dāng)前目錄。
- -fstype:查找位于特定文件系統(tǒng)類型的文件。
- -mount:不跨越文件系統(tǒng)掛載點(diǎn)查找文件。
- -follow:跟蹤符號(hào)鏈接文件。
- -cpio:將匹配的文件備份到磁帶設(shè)備中。
- -prune:忽略某個(gè)目錄。
具體查找方式包括:
-
按文件類型查找:find test1 -type d
linux命令之find的用法_文件系統(tǒng)
-
按文件名查找:find test1 -name test2
Linux命令之find的用法_linux_02
-
按文件屬主查找:find test1 -user wangmengting
Linux命令之find的用法_grep_03
-
按文件所屬組查找:find test1 -group wangmengting
Linux命令之find的用法_修改時(shí)間_04
-
按文件修改時(shí)間查找:find test1 -mtime -1
Linux命令之find的用法_find_05
其他查找方式這里不再一一展示。
如果查找結(jié)果過多,可以使用以下方法進(jìn)行顯示:
- -print:將匹配的文件輸出到標(biāo)準(zhǔn)輸出,例如find /home -type f -print。
此外,還可以對(duì)查找結(jié)果進(jìn)行額外操作:
- -exec:對(duì)匹配的文件執(zhí)行額外操作,例如find /test1 -name “test2.txt” -exec rm {} ;。其中{}表示find找到的文件,;表示命令結(jié)束,是轉(zhuǎn)義字符。
關(guān)于-mtime參數(shù)的使用:
- -mtime n:查找文件修改時(shí)間距今為n天的文件。
- -mtime -n:查找文件修改時(shí)間距今在n天以內(nèi)的文件。
- -mtime +n:查找文件修改時(shí)間距今在n天以前的文件。
例如:
- -mtime 0:查找文件修改時(shí)間距今不到1天的文件。
- -mtime 1:查找文件修改時(shí)間距今1天的文件。
- -mtime +1:查找文件修改時(shí)間距今大于1天的文件,即2天以上的文件。
- -mtime -1:查找文件修改時(shí)間距今小于1天的文件。
需要注意的是,-mtime +1查找的是修改時(shí)間距今超過2天的文件,因?yàn)閚只能是整數(shù),+1表示大于1天,即大于24小時(shí),最接近的整數(shù)是2,所以實(shí)際上是查找48小時(shí)以外的文件。