linux/unix find命令
1.1 命令選項
-name :照檔名查詢檔案。
-perm:照檔案許可權來查詢檔案。
-user:照檔案屬主來查詢檔案。
-group:照檔案所屬的組來查詢檔案。
-mtime -n +n:照檔案的更改時間來查詢檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup:找無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。
-nouser:找無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。
-newer file1 ! file2 :找更改時間比檔案file1新但比檔案file2舊的檔案。
-type :找某一型別的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
-size n:[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。
-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。
-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。
-mount:在查詢檔案時不跨越檔案系統mount點。
-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。
-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。
另外,下面三個的區別:
-amin n:系統中最後N分鐘訪問的檔案
-atime n:系統中最後n*24小時訪問的檔案
-cmin n: 查詢系統中最後N分鐘被改變檔案狀態的檔案
-ctime n: 查詢系統中最後n*24小時被改變檔案狀態的檔案
-mmin n: 查詢系統中最後N分鐘被改變檔案資料的檔案
-mtime n: 查詢系統中最後n*24小時被改變檔案資料的檔案
1.2 結合其他命令
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
例如:
a. 列出當前目錄下所有檔案:
bash-2.03$ find . -type f -exec ls -l {} \;
-rwxr-xr-x 1 ismg282 aisoft 5026 1月 9 15:40 ./wangzl/aimgtrace.ismg
-rwxr-xr-x 1 ismg282 aisoft 1310 1月 10 16:07 ./wangzl/smsICP.sh
-rw-r--r-- 1 ismg282 aisoft 15 5月 31 16:14 ./aa.txt
-rw-r--r-- 1 ismg282 aisoft 15 5月 31 16:15 ./bb.txt
-rw-r--r-- 1 ismg282 aisoft 15 5月 31 16:15 ./bak/aa.txt
b. 刪除滿足要求的目錄下的所有檔案:
find . -type d -name "LogBak" -exec rm -rf {}/* \;
find . -type d -name "BillBak" -exec rm -rf {}/* \;
find . -type d -name "BillTmpBak" -exec rm -rf {}/* \;
find . -type d -name "Data" -exec rm -fr {}/* \;
find . -type d -name "Trap" -exec rm -fr {}/* \;
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。
Xargs:但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令執行幾分鐘之後,就會出現溢位錯誤。錯誤資訊通常是“引數列太長”或“引數列溢位”。這就是xargs命令的用處所在,特別是與find命令一起使用。例子:用grep命令在當前目錄下的所有普通檔案中搜尋hostnames這個詞:
bash-2.03$ find . -name \* -type f -print | xargs grep "test"
./aa.txt:test
./bb.txt:test
./bak/aa.txt:test
3) find
find命令是功能最強的命令之一,但同時也是命令列結構最難以掌握的命令之一。
# find / -print | wc -l 顯示系統中所有檔案和目錄的數目。
# find / -user $LOGNAME -print 顯示系統中該使用者所有檔案和目錄。
# find / -size 100 -print 顯示檔案大小為100 blocks。
# find / -size -100 -print 顯示檔案大小小於100 blocks 。
# find / -size +100 -print 顯示檔案大小大於100 blocks 。
# find / -name core -exec rm {} ;查詢並刪除core檔案。
# find . -exec chown $LOGNAME {} ; 修改一個目錄下的所有檔案的使用者所屬。
# find .-type d -exec chmod 770 {} ;修改一個目錄下的所有目錄的許可權。
# find . -ctime +3 -exec ls -l {} \; 查詢當前目錄下3天前建立的檔案並列出(ctime 建立,atime 訪問,mtime 修改)
find /home/m_collect_b_hdc/top/ -ctime +3 -exec rm {} \;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22531473/viewspace-742726/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux/Unix重要find命令詳解Linux
- [轉]UNIX find命令實踐
- Linux/Unix 檔案查詢命令 find, xargs 詳述Linux
- linux find命令Linux
- linux find 命令Linux
- linux find 命令!Linux
- UNIX find 命令的高階技術 (轉)
- 【LINUX 學習】使用find和xargs[轉摘自《shell程式設計和unix命令》]Linux程式設計
- linux中file命令和find命令Linux
- Linux find 命令詳解Linux
- Linux find命令詳解Linux
- Linux精講——find命令Linux
- Unix 下使用 Find 命令查詢需要清理的檔案
- linux每日命令(20):find命令概覽Linux
- linux/unix命令參考Linux
- Linux 常用基本命令 findLinux
- (轉)Linux find命令詳解Linux
- Linux下find命令詳解Linux
- Linux Find 命令精通指南Linux
- 【UNIX】DBA常用的linux命令Linux
- Unix/Linux 常用監控命令Linux
- Linux/UNIX命令dd簡介Linux
- linux/unix dd命令詳解Linux
- linux/unix crontab命令詳解Linux
- linux/unix uname命令詳解Linux
- linux/unix ulimit命令詳解LinuxMIT
- 實用Unix/Linux 命令(轉)Linux
- 在 Linux中find命令使用技巧Linux
- linux 查詢檔案命令 findLinux
- Linux下find命令的用法(轉)Linux
- 每天一個linux命令:find命令之xargsLinux
- linux find 命令和 while 命令聯合使用案例LinuxWhile
- find 命令
- find命令
- 20個 Unix/Linux 命令技巧薦Linux
- Unix/Linux中nohup命令講解Linux
- linux/unix實用基本命令Linux
- Linux - find命令常用引數與示例Linux