常用find命令與xargs.txt

foxmile發表於2008-01-17
1、在home目錄下找txt副檔名的檔案
$ find ~ -name "*.txt" -print
2、想要在當前目錄及子目錄中查詢所有的‘ * . t x t’檔案,可以用:
$ find . -name "*.txt" -print
3、想要的當前目錄及子目錄中查詢檔名以一個大寫字母開頭的檔案,可以用:
$ find . -name "[A-Z]*" -print
4、檢視根目錄下大寫字母開始,數字結尾的檔案
find / -name "[A-Z]*[0-9]" -print
5、想要在/ e t c目錄中查詢檔名以h o s t開頭的檔案,可以用:
$ find /etc -name "host*" -print
6、如果想在當前目錄查詢檔名以兩個小寫字母開頭,跟著是兩個數字,最後是* . t x t的文
件,下面的命令就能夠返回名為a x 3 7 . t x t的檔案:
$ find . -name "[a-z][a-z][0--9][0--9].txt" -print
7、在當前資料夾下查詢許可權為為7 5 5的檔案,即檔案屬主可以讀、寫、執行,其他用
戶可以讀、執行的檔案,可以用:
find . -perm 755 -print
8、查詢所有使用者都有讀、寫、可執行許可權的檔案
find . -perm -007 -print

9、如果希望在/ home目錄下查詢檔案,但不希望在/home/oracle目錄下查詢,可以用:
$ find /home -name "/home/oracle" -prune -o -print
此處aix上測試不成功,未達到預期目的
10、查詢oracle使用者的檔案
find ~ -user oracle -print
11、查詢沒有使用者的檔案
 find /home -nouser -print
12、查詢/home目錄下dba使用者組的檔案
find /home -group dba -print

13、在根目錄下查詢沒有組的檔案
find / -nogroup -print
14、查詢五日內修改過的檔案
find / -mtime -5 -print
15、在/home下查詢更改日期為三日前的資料
find /home -mtime +3 -print
16、查詢更改時間比檔案.profile新,但是比testfile舊的檔案
find /home -newer .profile ! -newer testfile -exec ls -l {} \;
17、查詢更改在兩個小時內的檔案
 touch -t 12121439 dstamp
----12121439為當前時間之前兩個小時的一個時間
find . -newer dstamp -print
18、在/ e t c目錄下查詢所有的目錄,可以用:
 find /etc -type d -print
19、為了在當前目錄下查詢除目錄以外的所有型別的檔案,可以用:
 find . ! -type d -print
20、為了在/ e t c目錄下查詢所有的符號連結檔案,可以用:
 find /etc -type l -print

21、為了在當前目錄下查詢檔案長度大於1 M位元組的檔案,可以用:
 find . -size +1000000c -print
22、為了在/ h o m e / 目錄下查詢檔案長度恰好為1 0 0位元組的檔案,可以用:
 find /home -size 100c -print
23、為了在當前目錄下查詢長度超過1 0塊的檔案(一塊等於5 1 2位元組),可以用:
 find . -size +10 -print

24、, f i n d命令從檔案系統的根目錄開始,查詢一個名為C O N . F I L E的檔案。
它將首先匹配所有的檔案然後再進入子目錄中查詢。
find / -name "test*" -depth -print
25、從當前目錄開始查詢位於本檔案系統中檔名以le結尾的檔案:
$ find . -name "*le" -mount -print

該命令在aix下無效

26
find /etc  -depth -print | cpio -ivcdc65536 -o

27、查詢檔案並對它執行命令,使用ls -l列出查詢到的檔案
find . -type f -exec ls -l {} \;
28、查詢testfile 檔案,並對它執行刪除命令
find . -name "testfile" -print  -exec rm {} \;
29、查詢testfile 檔案,刪除它之前提示使用者
find . -name "testfile" -print  -ok rm {} \;
30、找到passwd檔案並查詢oracle使用者的記錄
find /etc -name "passwd*" -exec grep "oracle" {} \;
find . -name "passwd*" -exec grep "oracle" {} \;
31、匹配$HOME目錄下所有檔案
find $HOME -print
find ~ -print

32、為了在當前目錄中查詢s u i d置位,檔案屬主具有讀、寫、執行許可權,並且檔案所屬組的用
戶和其他使用者具有讀和執行的許可權的檔案,可以用
find . -type f -perm 4755 -print

33、為了查詢系統中所有檔案長度為0的普通檔案,並列出它們的完整路徑,可以用
find / -type f -size 0 -exec ls -l {} \;

34、為了查詢/ v a r / l o g s目錄中更改時間在7日以前的普通檔案,並刪除它們,可以用:
find /var/logs -type f -mtime +7 -exec rm {} \;

35、為了查詢系統中所有屬於a u d i t組的檔案,可以用:
find /-name -group audit -print
36、下面的f i n d命令將刪除/ l o g s目錄中訪問時間在7日以前、
含有數字字尾的a d m i n . l o g檔案。該命令只檢查三位數字,所以相應日誌檔案的字尾不要超過
9 9 9。
 find /logs -name 'admin.log[0-9][0-9]'[-0a-t9i]me +7 -exec rm {} \;

37、查詢磁帶裝置
find /dev/rmt -print

38、查詢普通檔案,使用xargs測試檔案分類
find ~ -name 'smit.script' -print | xargs file

39、在整個系統中查詢記憶體資訊轉儲檔案passwd ,然後把結果儲存到
/tmp/core.log 檔案中:
 find . -name "passwd" -print | xargs echo "" >/home/pwd_bak

40、在/ a p p s / a u d i t目錄下查詢所有使用者具有讀、寫和執行許可權的檔案,並收回相應
的寫許可權:
$ find /apps/audit -perm -7 -print | xargs chmod o-w

41、在下面的例子中,我們用g r e p命令在所有的普通檔案中搜尋table這個詞:
$ find / -type f -print | xargs grep "table"

該命令在aix下引起問題。很奇怪
42、用g r e p命令在當前目錄下的所有普通檔案中搜尋D B O這個詞:
$ find . -type f -print | xargs grep "DBO"

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-149754/,如需轉載,請註明出處,否則將追究法律責任。

相關文章