linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。linux下find命令提供了相當多的查詢條件,功能很強大
命令選項:-name 按照檔名查詢檔案。查詢普通檔案/目錄-perm 按照檔案許可權來查詢檔案。
-user 按照檔案屬主來查詢檔案。
-group 按照檔案所屬的組來查詢檔案。
-mtime -n +n 按照檔案的更改時間來查詢檔案 【-7 7天之內 +7 7天前】
-nogroup 查詢無效屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。
-nouser 查詢無效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查詢更改時間比檔案file1新但比檔案file2舊的檔案。
-type 查詢某一型別的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號鏈結檔案。
f - 普通檔案。
-size n:[c] 查詢檔案長度為n塊的檔案,帶有c表示檔案長度以位元組計。
-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。
另外,下面三個的區別:
-amin n 查詢系統中最後n分鐘訪問的檔案
-atime n 查詢系統中最後n*24小時訪問的檔案
-cmin n 查詢系統中最後n分鐘被改變檔案狀態的檔案
-ctime n 查詢系統中最後n*24小時被改變檔案狀態的檔案
-mmin n 查詢系統中最後n分鐘被改變檔案資料的檔案
-mtime n 查詢系統中最後n*24小時被改變檔案資料的檔案
find /home/omd -type f (普通檔案)只顯示1級目錄檔案且過濾自身find /home/omd -type d (查詢目錄)
find ./ -maxdepth 1 -type d ! -name "hhh"查詢一天內被訪問過(access)的檔案
find /home/omd/ -atime -1 -type f查詢inode相同的檔案
find / -inum inode數字除了某個檔案以為,其餘的均刪除
find /home/omd/ -type f ! -name h.txt | xargs rm –f刪除目錄下所有檔案ls | grep -v "h.txt" |xargs rm -rf (與上面類似,刪除除了某個檔案外的所有檔案)
find /tmp/ -type f -exec rm -rf {} \;檢視當前路徑下所有檔案的資訊:find /tmp/ -type f | xargs rm -rf
find /tmp/ -type f ! -name a |xargs rm –rf查詢指定時間內修改過的檔案find ./ -type f -exec file {} \;
# 當前路徑下訪問檔案超過2分鐘檔案find ./ -amin +2
# 當前路徑下訪問檔案剛好2分鐘的檔案
find ./ -amin 2
find ./ -cmin +2
find ./ -mmin +2
find ./ -mtime +2
find ./ -ctime +2
find ./ -mtime +2
find ./ -ctime +2
find / -ctime +20 最近修改檔案時間20分鐘以前按照目錄或檔案的許可權來查詢檔案find / -mtime +7 修改檔案為7天之前的(最重要)
find / -mtime 7 修改檔案為第7天,就是往前推7天
find / -mtime -7 修改檔案為7天之內的
find /opt -perm 777按大小查詢檔案
find / -size +10m |sort 【查詢大於10m的檔案】在test 目錄下查詢不在test4子目錄之內的所有檔案find / -size -10m |sort 【查詢小於10m的檔案】
find / -size 10m |sort 【查詢10m的檔案】
find ./test -path "test/test4" -prune -o -print查詢比yum.log 但不比hhh.txt新的檔案【可以使用-prune選項來指出需要忽略的目錄。在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那麼-prune選項就會被find命令忽略】
[root@localhost ftl]# find / newer /var/log/yum.log ! -newer ./hhh.txt查詢更改時間在比log2012.log檔案新的檔案
find ./ -newer log2012.log在當前目錄下查詢檔案長度大於1 m位元組的檔案
find ./ -size +1000000c –print在/home/apache目錄下查詢檔案長度恰好為100位元組的檔案:find ./ –size +1m -print
find /home/apache -size 100c -print在當前目錄下查詢長度超過10塊的檔案
find . -size 10 –print其他命令:
find /home/omd/ -name *.txt | while read line; do cp $line /home/omd/h;donels -l命令放在find命令的-exec選項中for name in `chkconfig | grep 3:on |awk ''` ; do echo $name >> h.txt; done;
find /home/omd/ -name *.txt | xargs -i cp {} /home/omd/h
cat /home/omd/h/he.txt | while read line; do echo $line >> /home/omd/h.txt ; done;
cat /home/omd/h.txt | awk 'begin '
cat /home/omd/h.txt | xargs -i {} cat {}
find . -name "*.txt" |xargs sed -i 's/hhhh/\hhhh/g'
find . -type f -exec ls -l {} \; 【{} 花括號代表前面find查詢出來的檔名】在目錄中查詢更改時間在n日以前的檔案並刪除它們
find ./ -mtime +10 -exec rm {} \;在目錄中查詢更改時間在n日以前的檔案並刪除它們,在刪除之前先給出提示
find / -mtime +1 -a -name "*.log" -type f -ok cp {} /tmp/ftl \; 【-ok是安全模式,根exec效果同】-exec中使用grep命令
find /etc -name "passwd*" -exec grep "root" {} \; 【過濾檔案內容用】查詢檔案移動到指定目錄
find . -name "*.log" -exec mv {} .. \;用exec選項執行cp命令
find . -name "*.log" -exec cp {} test3 \;linux xargs命令詳解
Linux find命令詳解
在linux上查詢某個檔案確實是一件比較麻煩的事情。畢竟在linux中需要我們使用專用的 查詢 命令來尋找在硬碟上的檔案。linux下的檔案表達格式非常複雜,不象windows,dos下都是統一的aaa.bbb格式那麼方便查詢,在windows中,只要知道要查詢的檔案的檔名或者字尾就非常容易查詢到。...
linux find命令詳解
pathname find命令所查詢 的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄 print find命令將匹配的檔案輸出到標準輸出 exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為 command 注意和 之間的空格。ok 和 exec的作用相同,...
Linux find命令詳解
用法總結如下 find pathname options print exec ok pathname 查詢路徑 option 主要選項如下 name 按照檔名稱查詢 perm 按照檔案許可權查詢 prune 不在當前指定的路徑查詢。如果同時指定了 depth選項,則prune被忽略 user 按照...