天天看點

Linux檔案查找Find指令使用解析

 Find從英語字面上的意思譯過來是發現,找到的意思,它在linux中作為檔案查找指令也十分形象,Find雖說隻是個指令,但其功能非常強大。

        好,下面來說說Find,先來說說它的基本文法格式:

find [查找路徑]  [查找标準]  [處理動作]

查找标準:

        -name 檔案名稱查找

        -iname 不區分大小寫查找

        -user 根據檔案屬主查找

        -group 根據檔案屬組查找

        -uid 根據Uid查找

        -gid 根據Gid查找

        -nouser 查找沒屬主的檔案

        -nogroup 查找沒屬組的檔案

組合條件:

        -a 與

        -o 或

         !非

檔案類型:

        -type

按檔案大小查找:

        -size

按時間戳查找:

        -atime

        -mtime

        -ctime

        -amin

        -mmin

        -cmin

按權限查找:

        -perm [+|-] Mode

        沒有+-表示精确比對

        +Mode 表示任何一類使用者的任何一位權限比對即可

        -Mode  表示每類使用者的每位權限都比對

處理動作:

        -print 顯示

        - ls 詳細資訊

        -exec Command {} \;

example:find /tmp -atime +30 -exec mv {} {}.old \;

這裡再引入一個指令:

 xargs - build and execute command lines from standard input

可以通過管道從标準輸入建立和執行指令行

看了這麼多,下面舉幾個例子吧:

1.查/tmp下屬主屬組不屬于root,并且在5分鐘之内改過的檔案。

# find /tmp/ ! -user root -a ! -group root  -mmin -5  -ls

<a href="http://s3.51cto.com/wyfs02/M02/25/B9/wKiom1NmJJCjfVyCAAJtmG623k4928.jpg" target="_blank"></a>

2.查找/usr下不屬于root,bin,或者tuchao的檔案,并複制到/tmp下。

# find /usr   ! \( -user root -o -user bin -o -user tuchao \) -exec cp {} /tmp  \;

看看,是不是都拷貝過去了。

<a href="http://s3.51cto.com/wyfs02/M02/25/B9/wKiom1NmKyXAl5ZsAAS5MKeGqh4321.jpg" target="_blank"></a>

3.查找目前系統上,一周内内容修改過,且沒有屬主屬組的檔案,找到後cp到/tmp/good目錄裡。

# find / -mtime -7 -a -nouser -a -nogroup | xargs -i cp {} /tmp/good

看這裡使用了xargs

<a href="http://s3.51cto.com/wyfs02/M00/25/B9/wKiom1NmLtXj-VYoAAWCtJhg3vw701.jpg" target="_blank"></a>

看圖檔前幾行,找到的檔案是不是都沒屬主屬組的,當然這些檔案都是我做的為了測試用的。

這篇就寫到這也差不多了,例子也基本貫穿了難點,慢慢體會吧!

有問題歡迎與我交流——筆者QQ:1183710107

本文轉自qw87112 51CTO部落格,原文連結:http://blog.51cto.com/tchuairen/1406295

繼續閱讀