一、簡介
在日常的Linux伺服器運維工作中,查找文件是一項非常重要的任務。Linux下有一個強大的命令叫做「find」,能夠根據不同的條件查詢文件。本文將會詳細介紹「find」命令的常用參數及使用方法。
二、常用參數
1. -name
通過文件名查找文件。例如,查找當前目錄下所有名為「test」的文件:
find . -name test
上述命令中,「.」表示當前目錄,-name表示匹配的文件名為「test」。
在上述命令中,「test」可以使用通配符進行模糊匹配。例如,查找當前目錄下以「test」開頭的文件:
find . -name 'test*'
-name參數也支持正則表達式,例如查找所有以數字結尾的文件:
find . -name '*[0-9]'
2. -type
通過文件類型查找文件。例如,查找當前目錄下所有目錄:
find . -type d
上述命令中,-type參數的值為「d」,表示查找目錄,而文件類型的取值還有:
- f: 普通文件
- d: 目錄
- l: 符號鏈接
- b: 塊設備文件
- c: 字元設備文件
- s: 套接字文件
- p: 命名管道
3. -mtime
通過文件修改時間查找文件。例如,查找當前目錄下3天以內更新過的文件:
find . -mtime -3
-mtime參數的值為「-3」,表示修改時間早於3天。如果要查找3天前更新過的文件,則值為「+3」。
還可以使用「-mtime n」和「-mtime -n」這兩種方式來指定n天前更新過的文件。
4. -size
通過文件大小查找文件。例如,查找當前目錄下所有大於10M的文件:
find . -size +10M
-size參數的值為「+10M」,表示文件大小大於10M。還可以使用「-size n」和「-size -n」這兩種方式來指定文件大小。
5. -user
通過文件所有者查找文件。例如,查找當前目錄下所有屬於root用戶的文件:
find . -user root
-user參數的值為用戶名稱,也可以使用UID來指定。
6. -group
通過文件所屬組查找文件。例如,查找當前目錄下所有屬於app用戶組的文件:
find . -group app
-group參數的值為組名稱,也可以使用GID來指定。
三、常見用法
1. 查找所有空文件和空目錄
在執行清理工作時,有時需要查找所有空文件和空目錄,以便刪除它們。可以使用以下命令來查找:
find . -type f -empty -o -type d -empty
-type f表示普通文件,-empty表示空文件,-type d表示目錄,-o表示邏輯或。
2. 查找某個目錄下包含某些內容的文件
有時需要查找某個目錄下包含某些內容的文件,例如查找所有包含「hello world」字元串的文件:
find /var/log/nginx/ -type f -exec grep -l 'hello world' {} \;
-exec參數跟隨一個命令,並將每個匹配的文件名作為參數傳遞給它。
3. 查找某個目錄下大小超過100M的文件,並按照大小排序
使用以下命令可以查找某個目錄下大小超過100M的文件,並按照大小排序:
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $5 ": " $9 }' | sort -hr
上述命令中,-exec參數跟隨的ls命令用於列出文件的詳細信息,awk命令用于格式化輸出,sort命令用於排序。
四、總結
本文介紹了Linux下「find」命令的常用參數及使用方法,包括-name、-type、-mtime、-size、-user、-group等常見參數及常見用法。熟練掌握這些參數,能夠幫助我們快速高效地查找文件,提高我們的工作效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197027.html