歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

find命令手冊

find相關命令和參數的相關說明 find - 在目錄層次中尋找文件 參數說明: -daystart 從今天也不從24小時之前開始計量時間(對 -amin, -atime, -cmin, -ctime, -mmin, 和-mtime有效)。 -depth 先搜索目錄的內容再搜索目錄本身。 -follow 不檢索符號鏈接。意即 -n find相關命令和參數的相關說明

 find - 在目錄層次中尋找文件
參數說明:
 -daystart 
                從今天也不從24小時之前開始計量時間(對 -amin,
                 -atime, -cmin, -ctime, -mmin, 和-mtime有效)。

        -depth
                先搜索目錄的內容再搜索目錄本身。

        -follow
                不檢索符號鏈接。意即 -noleaf。

               


        -help, --help
                列出find的命令行用法的概要,然後返回

        -maxdepth levels
                在命令行下目錄的最大深度級別(非負整數),'-maxdepth 0'
                意味著只在命令行參數中應用檢測和事件。

        -mindepth levels
                小於指定數字(非負整數)的深度級別的目錄層次將不應用檢
                測和事件。'-mindepth 1'意味著除了當前的命令行參數外
                將搜索所有的文件。
       
        -mount
                在其它文件系統中不進入目錄。

        -noleaf
                不優化假如某一個目錄裡包含少於兩個以下的子目錄。這個選
                項在那些不遵循UNIX文件系統鏈界約定的文件系統中用,像
                CD-ROM,MS-DOS或AFS卷加載點上。在UNIX文件系統中,每個
                目錄有至少兩個硬鏈接,它的名字和'.'。它的子目錄(假如有)
                各自有一個'..'鏈接到它本身。在FIND檢索一個目錄時,在統
                計其子目錄少於兩個,意味著將不需要在進行下去了。只需要
                檢索一下這個目錄名;這在檢索速度上是個有意義的提高。

        -version, --version
                顯示FIND的版本號,終止程序。

        -xdev 在其它文件系統中不進入目錄。
 說明:
        用下邊的格式可以指定數字參數

        +n      比n大。
        -n      比n小。
        n       恰好是n。



        -amin n
                文件最後一次訪問是在n分鐘前。

        -anewer file
                文件最後訪問時間比指定的file修改時間更晚。 -anewer會
                受到-follow的影響當在命令行中-follow在-anewer之前時。

        -atime n
                文件最後一次訪問是n*24小時前。

        -cmin n
                文件的狀態的改變是在n分鐘前。

        -cnewer file
                文件狀態的改變比指定的file狀態的改變時間更晚。-cnewer
                會受到-follow的影響當命令行中-follow在-cnewer之前時。

        -ctime n
                文件狀態的改變時間是在n*24小時前。

        -empty 文件是空的,它是一個正規的文件或目錄。

        -false  總是假。

        -fstype type
                文件是type類型。在不同的unix系統中有多種不同的文件系
                統類型。在一些不同版本的unix中有效的文件類型有:ufs,
                 4.2, 4.3, nfs, tmp, mfs, S51k, S52k.你可以用
                -printf加上%F指示來看你的文件系統的類型。

        -gid n 文件的數字型組ID是n.

        -group gname
                文件屬於組gname(允許數字型的gname).

        -ilname pattern
                 同-lname, 但是匹配是大小些不區分的.

        -iname pattern
                同-name,但是匹配是大小些不區分的。舉個例子,這個通配符
                'fo*'和'f??'匹配文件名'Foo', 'FOO', 'foo', 'fOo',等
                等。

        -inum n
                文件的i結點數是n.
     


        -ipath pattern
                同 -path, 但是匹配大小寫不區分。

        -iregex pattern
                同 -regex, 但是匹配大小寫不區分.

        -links n
                文件有n個鏈結。

        -lname pattern
                文件是個符號鏈結內容匹配shell通配符pattern。元字符
                '/'或'.'不能區別對待。

        -mmin n
                文件的數據最後一次被編輯是在n分鐘前.

        -mtime n
                文件的數據最後一次被編輯是在n*24小時前.

        -name pattern
                基本的文件名(起始的目錄已經檢測過了)匹配shell通配符
                pattern.元字符('*', '?', 和'[]')不能匹配一個以'.'
                開頭的文件名。忽略在它下邊的目錄或文件,用-prune;參看
                -path描述中的例子。

        -newer file
                文件最後編輯時間比指定的file晚
                -newer會受到-follow的影響當在命令行中-follow在-newer
                之前時。

        -nouser
                沒有用戶符合文件的數字型用戶ID.

        -nogroup
                沒有組符合文件的數字型組ID.

        -path pattern
                文件名匹配shell通配符pattern.元字符不能區分'/'和'.';
                因此,像例子

                        find . -path './sr*sc'

                將列出一個目錄條目'./src/misc'(假如它存在的話).
                忽略整個目錄樹,用-prune比檢測樹中的每一個文件要好一
                些。舉個例子,跳過'src/emacs'和它下邊的所有文件,列出
                其它發現的文件,執行下邊的命令:

                        find . -path './src/emacs' -prune -o -print



                             



        -perm mode
                文件的訪問權限位恰好是mode(八進制或符號).符號模式用
                模式0做為開始。

        -perm -mode
                文件的所有訪問權限位mode都設了。

        -perm +mode
                文件的一些訪問權限位mode設了。

        -regex pattern
                文件匹配規則的表達式通配符。這是一個在整個路徑中的
                匹配,而不是一個檢索。舉個例子,匹配一個'./fubar3'
                文件名的文件,你應該用規則的表達式'.*bar.'或'.*b.*3',
                 而不是'b.*r3'.

        -size n[bckw]
                文件占用n個單元空間。在缺省時或n後邊跟著字符b時,這個
                單元是512字節的塊,n後邊跟著c是字節,n後邊跟著k是千字節,
                n後邊跟著w是兩個字節的詞.文件大小不能計算間接的塊,但是
                能計算很少的沒能實際分配大小的文件。

        -true 總是真

        -type c
                文件是類型c:
                b       塊(緩沖)設備.
                c       字符設備.
                d       目錄.
                p       有名管道(FIFO).
                f       規則文件.
                l       符號鏈結.
                s       插座.

        -uid n 文件的數字型用戶ID是n.

        -used n
                文件的最後訪問時間是在它的狀態改變時間的n天前.






                               



        -user uname
                文件是屬於名為uname(數字型ID也可)的用戶。
        -xtype c
                這一項是和-type相同的除非文件是一個符號鏈結。
                若是符號鏈結:假如 -follow 沒有給出,若這個文件鏈結
                的是類型為c的文件,則返回真;假如給了-follow選項,若c
                為'l',則返回真.對於符號鏈結, -xtype檢測鏈結的文件類
                型,-type不做這樣的檢測。



事件


        -exec command ;
                執行命令;返回的狀態值為零則為真。所有在這之後的參數
                都是command的參數,直到遇到';'.字符串'{}'將被當前的
                文件名代替,作為當前命令的參數,並不是象一些版本FIND
                一樣是個單獨存在的一個參數,這些語句應該被轉義(用'\')
                或被引用,以此來保護他們被SHELL展開。這個命令將在起始
                目錄被執行。

        -fls file
                值為真;同 -ls 但像 -fprint一樣將輸出寫向文件file

        -fprint file
                值為真;輸出整個文件名到文件file中.當find運行時file不
                存在,它將被建立;若存在,原來的文件內容將被刪掉。也可以
                用名為"/dev/stdout"和"/dev/stderr"的文件,它們分別指
                的時是標准輸出和標准錯誤。

        -fprint0 file
                值為真;同 -printf 但是將像 -fprint 一樣將輸出寫像文
                件file.

        -ok command
                同 -exec但是先問用戶(在標准輸入);假如應答不是以'y'或
                'Y'開頭,將不執行command,返回假。

        -print  值為真;在標准輸出上輸出整個文件名,並加一個新行。

        -print0
                值為真;在標准輸出上輸出整個文件名,並加一個空字符。這
                將允許



                                        6


                其它程序能正確的處理在FIND輸出中包含新行的文件名。

        -printf format

                值為真。通過解釋轉義字符'\'和指示字符'%',格式化輸出
                到標准輸出上.空間寬度和精度能像c函數'printf'一樣被
                指定。不像 -print, -printf不能在字符串的末尾自動加
                一個新行。這些轉義和指示字符是:

                \a      鳴聲.

                \b      退格鍵.

                \c      馬上停止格式輸出,輸出到標准輸出上。

                \f      換頁符.

                \n      行符.

                \r      回車符.

                \t      水平制表符.

                \v      豎直制表符.

                \      反斜線.

                一個'\'字符後跟著其它字符將被視為普通字符,它們都將
                被輸出。

                %%      符號'%'.

                %a      在格式輸出中通過調用c函數'ctime'返回文件的
                        最後訪問時間。

                %AK     用K指定的格式輸出文件的最後訪問時間。K可以
                        是'@'或者C函數'strftime'函數的一個指示。有
                        效的K值列在下邊;它們不一定在所有的系統中都
                        有效,主要取決於這些系統中'strftime'函數的
                        異同。

                        @       從Jan.   1,  1970,  00:00 GMT到
                                現在的秒數。

                        時間域:

                        H       點鐘 (00..23).




                        I       點鐘 (01..12).

                        k       點種 ( 0..23).

                        l       點鐘 ( 1..12).

                        M       分鐘 ( 00.59).

                        p       本地的上午或下午.

                        r       時間,12小時格式 (hh:mm:ss[AP]M).

                        S       秒鐘 (00.61).

                        T       時間,24小時格式 (hh:mm:ss).

                        X       本地的時間表示 (H:M:S).

                        Z       時區 (舉例來說,EDT(美國東部時區)),或沒
                                有表示沒有可決定的時區。

                        日期域:

                        a       本地縮寫的星期名 (Sun..Sat).

                        A       本地完全的星期名,不定長 (Sunday..Saturday).

                        b       本地縮寫的月份名 (Jan...Dec).

                        B       本地完全的月份名,不定長 (January...December).

                        c       本地的日期和時間 (Sat Nov 04 12:02:33 EST 1989).

                        d       當月的哪一天 (01..31).

                        D       日期 (mm/dd/yy).

                        h       同 b.

                        j       當年的哪一天 (001..366).

                        m       月份 (01..12).

                        U       當年的星期數,用星期日做為一星期的第一天 (00..53).

                        w       星期的哪一天

                        W       當年的星期數,用星期一做為一星期的第一天 (00..53).



                        x       本地的日期表示法 (mm/dd/yy).

                        y       當年的最後兩位數 (00..99).

                        Y       年份 (1970...).

                %b      用512字節的塊計算的文件的大小(上捨入)。

                %c      用C函數'ctime'返回的文件狀態的最後改變時間。

                %Ck     被k指定的文件狀態的最後改變時間,k與%A後的k相同.

                %d      文件在目錄樹中的深度;0意味著文件在命令行參數中.

                %f      不帶目錄的文件名(只有最後的元素).

                %F      這個文件所在的文件系統類型名;這個值能被 -fstype用。

                %g      文件的組名,若組無名則是組ID.

                %G      文件的數字組ID.

                %h      文件的主目錄 (除了最後的元素).

                %H      命令行參數若文件在命令行參數中找到.

                %i      文件的i節點數 (10進制格式).

                %k      用1K字節的塊計算文件的大小(上捨入)。

                %l      符號鏈接的目標(假如文件不是一個符號鏈接則返回一個
                        空字符串).

                %m      文件的訪問權限位 (八進制)

                %n      文件的硬鏈接數

                %p      文件名.

                %P      用在命令行參數之下發現的文件名代替文件名.



                %s      用字節計算的文件大小.

                %t      用C函數'ctime'返回的文件的最後編輯時間。

                %Tk     被k指定格式的文件的最後編輯時間,k與%A後的k相同.

                %u      文件的用戶名,若沒有則輸出用戶數字ID.   

                %U      文件的數字ID.   

                字符'%'後跟著另外的字符將被丟棄(但是其它的字符將輸出).

        -prune  假如 -depth 沒指定,值為真;不進入當前的目錄。
                若 -depth 給定,值為假;沒作用.

        -ls     值為真;用 'ls -dils'格式在標准輸出中列出當前目錄的文件。
                塊記數單位是1k字節,除非 設定了POSIXLY_CORRECT環境變量,
                將用512字節作為單位。



操作符


        列出優先級順序
       
        ( expr )
                強制優先.

        ! expr  假如expr為假則為真.

        -not expr
                同 ! expr.

        expr1 expr2
                和操作(默認); 假如expr1值是假expr2不能鑒定。

        expr1 -a expr2
                同 expr1 expr2.

        expr1 -o expr2
                與操作;假如expr1值是真expr2不能鑒定。

        expr1 -or expr2
                同 expr1 -o expr2.

Copyright © Linux教程網 All Rights Reserved