Linux下搜尋檔案常用方法
# linux檔案無建立時間
# Access 使用時間
# Modify 內容修改時間
# Change 狀態改變時間(許可權、屬主)
# 時間預設以24小時為單位,當前時間到向前24小時為0天,向前48-72小時為2天
# -and 且 匹配兩個條件 引數可以確定時間範圍 -mtime +2 -and -mtime -4
# -or 或 匹配任意一個條件
find /etc -name "*http*" # 按檔名查詢
find . -type f # 查詢某一型別檔案
find / -perm # 按照檔案許可權查詢
find / -user # 按照檔案屬主查詢
find / -group # 按照檔案所屬的組來查詢檔案
find / -atime -n # 檔案使用時間在N天以內
find / -atime +n # 檔案使用時間在N天以前
find / -mtime +n # 檔案內容改變時間在N天以前
find / -ctime +n # 檔案狀態改變時間在N天前
find / -mmin +30 # 按分鐘查詢內容改變
find / -size +1000000c -print # 查詢檔案長度大於1M位元組的檔案
find /etc -name "*passwd*" -exec grep "xuesong" {} \; # 按名字查詢檔案傳遞給-exec後命令
find . -name 't*' -exec basename {} \; # 查詢檔名,不取路徑
find . -type f -name "err*" -exec rename err ERR {} \; # 批量改名(查詢err 替換為 ERR {}檔案
find 路徑 -name *name1* -or -name *name2* # 查詢任意一個關鍵字
find /var/adm -mtime +3 -print #為了在/var/adm目錄下查詢更改時間在3日以前的檔案
find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; #查詢更改時間唄檔案age.awk新但比檔案belts.awk舊的檔案
find /etc -type d -print #查詢/etc目錄下所有的目錄
find /etc ! -type d -print #查詢/etc下除了目錄之外的所有型別的檔案
find /etc -type l -print #查詢/etc下所有的符號連結檔案
例項如下:
find命令例項
簡單地使用find命令查詢指定目錄下的某個檔案的方法如下:
#find /etc -name inittab
/etc/inittab
#在當前目錄下,查詢名稱為inittab的檔案:
#find . -name inittab ./inittab
#找出當前目錄下,檔名不區分大小寫是example的所有檔案:
$find . -iname example
./example ./Example
#找出當前目錄下,目錄名是tmp的目錄:
$ find . -type d -name tmp
./tmp
#找出當前目錄下所有sh檔案:
$ find . -type f -name "*.sh"
./login.sh ./index.sh
#找出當前目錄下,檔案許可權是777的所有檔案:
$find. -type f -perm 0777
#找出當前目錄下,檔案許可權不是777的所有檔案:
$ find . -type f ! -perm 777
#找出/etc/目錄下所有隻讀檔案:
find . -type f ! -perm /a+w
#找出你賬號的主目錄下的所有可執行檔案:
$ find ~ -type f -perm /a+x
#找出/tmp目錄下的.log檔案並將其刪除:
$find /tmp/ -type f -name "*.log" -exec rm -f {} \;
#找出當前目錄下的所有空檔案:
$find . -type f -empty
#找出當前目錄下的所有空目錄:
$find . -type d –empty
#找出/tmp目錄下的所有隱藏檔案:
$find /tmp/ -type f -name ".*"
#找出/tmp目錄下,所有者是root的檔案和目錄:
$find /tmp/ -user root
#找出/tmp目錄下,使用者組是developer的檔案和目錄:
$find /tmp/ -group developer
#找出你賬號的主目錄下,3天前修改的檔案:
$ find ~ -type f -mtime 3
#找出你賬號的主目錄下,30天以前修改的所有檔案:
$ find ~ -type f -mtime +30
#找出你賬號的主目錄下,3天以內修改的所有檔案:
$ find ~ -type f -mtime -3
#找出你賬號的主目錄下,30天以前60天以內修改的所有檔案:
$ find ~ -type f -mtime +30 -mtime -60
#找出/etc目錄下,一小時以內變更過的檔案:
find /etc -type f –cmin -60
#找出/etc目錄下,一小時以內訪問過的檔案:
find /etc -type f -amin -60
#找出你賬號的主目錄下,大小是50MB的所有檔案:
$find ~ -type f -size 50MB
#找出你賬號的主目錄下,大於50MB小於100MB的所有檔案:
$ find ~ -type f -size +50MB -size -100MB
#找出你賬號的主目錄下,大於100MB的檔案並將其刪除:
$ find ~ -type f -size +100MB -exec rm –rf {} \;