1、find命令:默認當前目錄,且爲遞歸搜索。
語法:find [OPTION] 。
OPTION的類型:查找路徑、查找條件、處理動作。
查找條件(指定的查找標準,可以是文件名、大小、類型、權限等標準進行;默認爲找出指定路徑下的所有文件)。
2、查找層級
①find -maxdepth N. -name filename:最大搜索深度 1 層(當前目錄下 1 層),且 -name 和 -maxdepth 命令順序不能交換。同理還有find -mindepth N. -name filename ,也即:層級命令優先級較高。
②使用 -maxdepth 後面不加搜索的文件名,則會列出指定層級的目錄。
③同時使用 -maxdepth N. 和 -mindepth N. 中 N. 爲同一個數值,則只搜索指定層級。
3、按文件名查找
①find PATH -name filename :按文件名查找。
②find PATH -iname :不區分大小寫。
PATH爲路徑,可有可無。
4、只搜索文件或目錄
find PATH -type TYPE :按類型搜索文件。
• f : (file)普通文件,查找文件;
• d: (dictionary)目錄文件,查找目錄;
• l:符號鏈接文件;
• find PATH -type d/f -empty :查找空文件或目錄。
5、按屬主、組主查找
• find -user USERNAME:查找屬主爲指定用戶(UID)的文件
• find -group GRPNAME: 查找屬組爲指定組(GID)的文件
• find -uid UserID:查找屬主爲指定的UID號的文件
• find -gid GroupID:查找屬組爲指定的GID號的文件
• find -nouser:查找沒有屬主的文件
• find -nogroup:查找沒有屬組的文件
6、按時間查找
• -mtime -/+N.:按文件更改時間來查找文件,-n指n天以內,+n指n天以前;
• -atime -/+N.:按文件訪問時間來查找文件;
• -ctime -/+N.:按文件創建時間來查找文件。
• atime、mtime、ctime 都是以天爲單位,amin、mmin、cmin 都是以分鐘爲單位。
7、按權限查找
• find PATH -perm 權限(find type f -perm 0777 -print :找到當前文件夾下權限爲0777的文件並打印到屏幕)。
• find -perm +222:只要當任意人有寫權限時就會匹配
• find -perm -222:只有當每個人都有寫權限時纔會匹配
8、按文件大小
-size [+|-]#UNIT
常用單位:k, M, G,c(byte)
#UNIT: (#-1, #]
如:6k 表示(5k,6k]
-#UNIT:[0,#-1]
如:-6k 表示[0,5k]
+#UNIT:(#,∞)
如:+6k 表示(6k,∞)
9、參數替換xargs
xargs:由於很多命令不支持管道 | 來傳遞參數,xargs用於產生某個命令的參數,xargs可以讀入 stdin 的數據,並且以空格符或回車符將 stdin 的數據分隔成爲參數。
xargs命令處理動作:
①-print:默認的處理動作,顯示至屏幕;
②-ls:類似於對查找到的文件執行“ls -l” 命令;
③-delete:刪除查找到的文件;
④-fls file:查找到的所有文件的長格式信息保存至指定文件中;
⑤-ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對於每個文件執行命令之前,都會交互式要求用戶確認;
⑥-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令。
例:$find ./ -type f -exec grep“^#!*”{} \;(找到當前文件夾下含有以 #! 字符串開頭的文件)
10、與或非
• 組合條件:①與:-a ②或:-o ③非:-not !
• 德·摩根定律:
(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
(這個我不亂寫了,怕寫錯)
11、locate查找命令
• locate:基於索引數據庫進行搜索,較爲快速;
• locate查找支持模糊搜索;
• 搜索的是文件的全路徑,不僅僅是文件名;
• 可能只搜索用戶具備讀取和執行權限的目錄;
• 語法:locate KEYWORD:
-i:不區分大小寫的搜索
-n N.: 只列舉前N個匹配項目
-r:使用基本正則表達式