歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> find命令手冊

find命令手冊

日期:2017/3/6 15:18:37   编辑:關於Unix
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