find命令詳解##
Linux一切皆文件,而需要從整個系統(tǒng)中尋找到自己所需要的文件催享,就需要用到find命令,可以說是使用最多的Linux命令之一,而且find命令支持正則表達(dá)式匹配记劝。
首先使用man來查看find命令手冊。
find--search for files in a directory hierarchy
常用語法:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
常用選項(xiàng):
-name:根據(jù)文件名查找族扰;
-type:根據(jù)文件類型查找(f-普通文件厌丑;d-目錄定欧;l-符號鏈接;b-塊設(shè)備怒竿;c-字符設(shè)備砍鸠;s-套接字);
-size:根據(jù)文件大小查找(b-塊<512字節(jié)>耕驰;c-字節(jié)爷辱;k-千字節(jié);M-兆字節(jié)朦肘;G-吉字節(jié))饭弓;
-perm [-|/] MODE:根據(jù)文件權(quán)限查找
(MODE:精確查找;-MODE:文件權(quán)限完全包含此MODE媒抠;/MODE:任意一位匹配)弟断;
-user:根據(jù)文件屬主查找;
-group:根據(jù)文件數(shù)組查找趴生;
根據(jù)文件時間戳查找:
-atime(天)/amin(分鐘):訪問時間戳
-mtime(天)/mmin(分鐘):修改時間戳
-ctime(天)/cmin(分鐘):改變時間戳
舉個栗子:
在/home目錄下查找所有的txt文件
find /home -name "*.txt"
find /home -iname "*.txt"(忽略大小寫)
在/home目錄下查找所有的普通文件
find /home -type f
在當(dāng)前目錄查找所有10k的文件
find . -type f -size 10k
在當(dāng)前目錄查找所有大于10k的文件
find . -type f -size +10k
在當(dāng)前目錄查找所有小于10k的文件
find . -type f -size -10k
根據(jù)時間戳查找文件的使用方法相同阀趴,以訪問時間戳舉例,
當(dāng)前目錄最近7天內(nèi)被訪問過的文件
find . -type f -atime -7
當(dāng)前目錄7天之前前被訪問過的文件
find . -type f -atime +7
當(dāng)前目錄恰好在七天前被訪問過的文件
find . -type f -atime 7
在當(dāng)前目錄查找權(quán)限為600的文件
find . -type f -perm 600
此外苍匆,find命令還可以對查詢到的文件結(jié)果集進(jìn)行進(jìn)一步操作
常用操作:
-print:打印結(jié)果到屏幕上刘急;
-ls:類似于對查找到的文件執(zhí)行“l(fā)s -l”命令,輸出文件的詳細(xì)信息浸踩;
-delete:刪除查找到的文件叔汁;
-ok COMMAND {} ; :對查找到的每個文件執(zhí)行由COMMAND表示的命令;每次操作都由用戶進(jìn)行確認(rèn)检碗;
-exec COMMAND {} ;:對結(jié)果集進(jìn)行COMMAND命令的操作据块;
PS:{} ;為固定格式,其中{}代表查找到的結(jié)果集后裸。