find命令詳解##
Linux一切皆文件,而需要從整個系統中尋找到自己所需要的文件,就需要用到find命令,可以說是使用最多的Linux命令之一,而且find命令支持正則表達式匹配。
首先使用man來查看find命令手冊。
find--search for files in a directory hierarchy
常用語法:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
常用選項:
-name:根據文件名查找;
-type:根據文件類型查找(f-普通文件;d-目錄;l-符號鏈接;b-塊設備;c-字符設備;s-套接字);
-size:根據文件大小查找(b-塊<512字節>;c-字節;k-千字節;M-兆字節;G-吉字節);
-perm [-|/] MODE:根據文件權限查找
(MODE:精確查找;-MODE:文件權限完全包含此MODE;/MODE:任意一位匹配);
-user:根據文件屬主查找;
-group:根據文件數組查找;
根據文件時間戳查找:
-atime(天)/amin(分鐘):訪問時間戳
-mtime(天)/mmin(分鐘):修改時間戳
-ctime(天)/cmin(分鐘):改變時間戳
舉個栗子:
在/home目錄下查找所有的txt文件
find /home -name "*.txt"
find /home -iname "*.txt"(忽略大小寫)
在/home目錄下查找所有的普通文件
find /home -type f
在當前目錄查找所有10k的文件
find . -type f -size 10k
在當前目錄查找所有大于10k的文件
find . -type f -size +10k
在當前目錄查找所有小于10k的文件
find . -type f -size -10k
根據時間戳查找文件的使用方法相同,以訪問時間戳舉例,
當前目錄最近7天內被訪問過的文件
find . -type f -atime -7
當前目錄7天之前前被訪問過的文件
find . -type f -atime +7
當前目錄恰好在七天前被訪問過的文件
find . -type f -atime 7
在當前目錄查找權限為600的文件
find . -type f -perm 600
此外,find命令還可以對查詢到的文件結果集進行進一步操作
常用操作:
-print:打印結果到屏幕上;
-ls:類似于對查找到的文件執行“ls -l”命令,輸出文件的詳細信息;
-delete:刪除查找到的文件;
-ok COMMAND {} ; :對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;
-exec COMMAND {} ;:對結果集進行COMMAND命令的操作;
PS:{} ;為固定格式,其中{}代表查找到的結果集。