Linux下find命令在目錄結構中搜索文件,並執行指定的操作。Linux下find命令提供了相當多的查找條件,功能很強大。由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網絡文件系統( NFS),find命令在該文件系統中同樣有效,只你具有相應的權限。
linux下find命令的用法
find -name //根據文件名查找(精確查找)
find -name "*.txt" //根據關鍵字查找
find -iname //根據文件名查找,但是不區分大小寫
find -name a* //在當前目錄下查找以a開始的文件
2. 按尺寸查找:
find / -size 1500c (查找1,500字節大小的文件,c表示字節)
find / -size +1500c (查找大於1,500字節大小的文件,+表示大於)
find / -size -1500c (查找小於1,500字節大小的文件,-表示小於)
3. 按時間:
find / -amin n 最後n分鐘
find / -atime n 最後n天
find / -cmin n 最後n分鐘改變狀態
find / -ctime n 最後n天改變狀態
find / -mmin n 查找系統中最後N分鐘被改變文件數據的文件
find / -mtime n 查找系統中最後n*24小時被改變文件數據的文件
4. 其它:
find / -empty 空白文件、空白文件夾、沒有子目錄的文件夾
find / -false 查找系統中總是錯誤的文件
find / -fstype type 找存在於指定文件系統的文件,如type爲ext2
find / -gid n 組id爲n的文件
find / -group gname 組名爲gname的文件
find / -depth n 在某層指定目錄中優先查找文件內容
find / -maxdepth levels 在某個層次目錄中按遞減方式查找
5. 邏輯
-and 條件與
-or 條件或
1.命令參數:
=======================================================
#查找名爲filename的文件
-perm #按執行權限來查找
-user username #按文件屬主來查找
-group groupname #按組來查找
-mtime -n +n(+n指n天以前)#按文件更改時間來查找文件,-n指n天以內
-atime -n +n #按文件訪問時間來查GIN: 0px">-perm
========================================================
#按執行權限來查找
-user username #按文件屬主來查找
-group groupname #按組來查找
-mtime -n +n #按文件更改時間來查找文件,-n指n天以內,
-atime -n +n #按文件訪問時間來查找文件,-n指n天以內,
-ctime -n +n #按文件創建時間來查找文件,-n指n天以內,
-nogroup #查無有效屬組的文件,即文件的屬組
-newer f1 !f2 找文件,-n指n天以內,+n指n天以前
-ctime -n +n #按文件創建時間來查找文件,-n指n天以內,
-nogroup #查無有效屬組的文件,即文件的屬組
-nouser #查無有效屬主的文件,即文件的屬主
-newer f1 !f2 #查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f #查是塊設備、目錄、字符設備、管道、符號
===========================================================
鏈接、普通文件
-size n[c] #查長度爲n塊[或n字節]的文件
-depth #使查找在進入子目錄前先行查找完本目錄
-fstype #查更改時間比f1新但比f2舊的文件
-mount #查文件時不跨越文件系統mount點
-follow #如果遇到符號鏈接文件,就跟蹤鏈接所指的文
===========================================================
二.在windows下,一個文件有:創建時間、修改時間、訪問時間。而在Linux下,
一個文件也有三種時間,分別是:訪問時間、修改時間、狀態改動時間。
mtime:文件最近內容修改的時間
ctime:文件最近屬性和權限修改的時間
atime:文件最近被訪問的時間
1.ls -l filename(ls默認顯示的是mtime)
-rw-rw-r-- 1 lawrance lawrance 27 Oct 5 02:09 filename
2.ls -l --time=ctime filename
-rwxr-xr-x 1 lawrance lawrance 27 Oct 6 02:50 filename
3.ls -l --time=atime filename
-rw-rw-r-- 1 lawrance lawrance 27 Oct 6 02:30 filename
另外,可以格式化輸出文件的三種時間,如:
1.find . -name file -printf "%AY-%Am-%Ad %AH:%AM:%AS"
2.find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"
3.find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"