受立信oss劉長海linux命令-find及xargs的使用_第1頁
受立信oss劉長海linux命令-find及xargs的使用_第2頁
受立信oss劉長海linux命令-find及xargs的使用_第3頁
受立信oss劉長海linux命令-find及xargs的使用_第4頁
受立信oss劉長海linux命令-find及xargs的使用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、由于f i n d 具有強大的功能,所以它的選項也很多,其中大部分選項都值得花時間來了解一下。即使系統(tǒng)中含有網(wǎng)絡(luò)文件系統(tǒng)( N F S ),f i n d 命令在該文件系統(tǒng)中同樣有效,只要你具有相應(yīng)的權(quán)限。F i n d 命令的一般形式為:find pathname -options -pr-exec -ok該命令的參數(shù):pathname: find 命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。-pr:find 命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。-exec:find 命令對匹配的文件執(zhí)行該參數(shù)所給出的s命令。相應(yīng)命令的形式為d ;,注意 和;之間的空格。-ok: 和- e

2、 x e c 的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的s行。命令,在執(zhí)行每一個命令之前,都會給出提示,讓用戶來確定是否執(zhí)find 命令選項:-name:按照文件名查找文件。-perm:按照文件權(quán)限來查找文件。-prune:使用這一選項可以使f i n d 命令不在當(dāng)前指定的目錄中查找,如果同時使用-depth 選項,那么-prune 將被f i n d 命令忽略。-user:按照文件屬主來查找文件。-group:按照文件所屬的組來查找文件。-mtime -n +n:按照文件的更改時間來查找文件, - n 表示文件更改時間距現(xiàn)在n 天以內(nèi),+ n 表示文件更改時間距現(xiàn)在n 天以

3、前。F i n d 命令還有- a t i m e 和- c t i m e 選項,但它們都和- m t i m e 選項。-nogroup:查找無有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s 中不存在。-nouser:查找無有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d 中不存在。-newer file1 ! file2:查找更改時間比文件 f i l e 1 新但比文件f i l e 2 舊的文件。-type 查找某一類型的文件:b -d -c -p -塊設(shè)備文件。目錄。字符設(shè)備文件。管道文件。l - 符號文件。f - 普通文件

4、。-size n:c 查找文件長度為n 塊的文件,帶有c 時表示文件長度以字節(jié)計。-depth:在查找文件時,首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找。-fstype:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募? e t c / f s t a b 中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。-mount:在查找文件時不文件系統(tǒng)m o u n t 點。-follow:如果 f i n d 命令遇到符號文件,就至所指向的文件。-cpio:對匹配的文件使用 c p i o 命令,將這些文件備份到磁帶設(shè)備中。1、使用 exec 或 ok 來執(zhí)行 s命令e

5、x e c 選項后面跟隨著所要執(zhí)行一個,最后是一個分號。,然后是一對兒 ,一個空格和令或例如:為了用 ls -l 命令列出所匹配到的文件,可以把 ls -l 命令放在f i n d 命令的- e x e c 選項中。# find . -type f -exec ls -l ;-rw-r-r-rw-r-r-rw-r-r-1 root1 root1 rootroot root root34928 2003-02-25 ./conf/httpd.conf12959 2003-02-25 ./conf/180 2003-02-25 ./conf.d/READM在/ l o g s 目錄中查找更改時間在

6、 5 日以前的文件并刪除它們:$ find logs -type f -mtime +5 -exe ;在下面的例子中, f i n d 命令在當(dāng)前目錄中查找所有文件名以. L O G 結(jié)尾、更改時間在 5 日以上的文件,并刪除它們,只不過在刪除之前先給出提示。$ find . -name *.conf -mtime +5 -ok rm ; ? y2、xargs在使用f i n d 命令的- e x e c 選項處理匹配到的文件時, f i n d 命令將所有匹配到的文件一起傳遞給e x e c 執(zhí)行。但有些系統(tǒng)對能夠傳遞給 e x e c令長度有限制,這樣在f i n d 命令運行幾分鐘之后,

7、就會出現(xiàn)溢出錯誤。錯誤信息通常是“參數(shù)列太長”或“參數(shù)列溢出”。這就是x a rg s 命令的用處所在,特別是與f i n d 命令一起使用。F i n d 命令把匹配到的文件傳遞給x a rg s 命令,而x a rg s 命令每次只獲取一部分文件而不是全部,不像- e x e c 選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。在有些系統(tǒng)中,使用- e x e c 選項會為處理每一個匹配到的文件而發(fā)起一個相應(yīng)的進(jìn)程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行;這樣在有些情況下就會出現(xiàn)進(jìn)程過多,系統(tǒng)性能下降,因而效率不高;而使用x a rg s 命令則只有一個進(jìn)程。

8、另外,在使用x a rg s 命令時,究竟是一次獲取所有的參數(shù),還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會根據(jù)該命令的選項及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定。下面的例子查找系統(tǒng)中的每一個普通文件,然后使用 x a rg s 命令來測試它們分別屬于哪類文件:#find . -type f -pr| xargs file./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text./.kde/Autostart/.directory:ISO-8859 text用g r e p 命令在當(dāng)前目錄下的所有普通文件中搜索hostnames 這個

9、詞:# find . -name * -type f -pr| xargs grep hostnames./httpd1.conf:# by the./httpd1.conf:#different IP addresses or hostnames and have them handledVirtualHost:Ifyouwanttomaainmultiples/hostnames on your3、下面是 find 一些常用參數(shù)的例子:1)、使用 name 選項可以使用某種文件名模式來匹配文件,記住要用引號將文件名模式引起來。不管當(dāng)前路徑是什么,如果想要在自己的根目錄$ H O M E 中

10、查找文件名符合* . t x t 的文件,使用作為 p a t h n a m e 參數(shù),波浪號代表了你的$ H O M E 目錄。$ find -name *.txt pr想要的當(dāng)前目錄及子目錄中查找文件名以一個大寫字母開頭的文件,可以用:$ find . -name A-Z* pr2)、用 perm 選項按照文件權(quán)限模式用- p e r m 選項。如在當(dāng)前目錄下查找文件權(quán)限位為 7 5 5 的文件,即文件屬主可以讀、寫、執(zhí)行,其他用戶可以讀、執(zhí)行的文件,可以用:$ find . -perm 755 pr-perm mode:文件-perm +mode:文件-perm -mode: 文件ro

11、ottech test# ll正好符合mode部分符合mode完全符合mode-rwxrwxrwx 1 root root 21 03-21 08:30 file1-rw-r-r- 1 root root 0 03-21 07:59 file2 roottech test# find . -type f -perm -004./file1./file2roottech test# find . -type f -perm -010./file1文件許完全符合mode:roottech test# find . -type f -perm -014./file1文件許部分符合mode:roott

12、ech test# find . -type f -perm +014./file1./file23)、忽略某個目錄如果在查找文件時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的文件,那么可以使用- p r u n e 選項來需要忽略的目錄。在使用- p r u n e選項時要當(dāng)心,因為如果你同時使用了- d e p t h 選項,那么- p r u n e 選項就會被f i n d 命令忽略。如果希望在/ a p p s 目錄下查找文件,但不希望在/ a p p s / b i n 目錄下查找,可以用:$ find /apps -path /apps/bin -prune -o pr

13、這個表達(dá)式組合特例可以用偽碼寫為if -path /apps/bin then-pruneelse-pr避開多個文件夾$find /usr/sam ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o pr圓括號表示表達(dá)式的結(jié)合。 表示,即指示 s不對后面的字符作特殊解釋,而留給 find 命令去解釋其意義。這個表達(dá)式組合特例可以用偽碼寫為if ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) then-pruneelse-pr4)、使用 user 和nouser 選項按文件屬主查找文件

14、,如在$ H O M E 目錄中查找文件屬主為sam 的文件,可以用:$ find -user sam pr為了查找屬主帳戶已經(jīng)被刪除的文件,可以使用- n o u s e r 選項。這樣就能夠找到那些屬主在/ e t c / p a s s w d 文件中沒有有效帳戶的文件。在使用- n o u s e r 選項時,不必給出用戶名; f i n d 命令能夠為你完成相應(yīng)的工作。例如,希望在/ h o m e 目錄下查找所有的這類文件,可以用:$ find /home -nouser pr5) 、使用group 和nogroup 選項就像u s e r 和n o u s e r 選項一樣,針對

15、文件所屬于的用戶組, f i n d 命令也具有同樣的選項,為了在/ a p p s 目錄下查找屬于gem 用戶組的文件,可以用:$ find /apps -group gem pr要查找沒有有效所屬用戶組的所有文件,可以使用 n o g r o u p 選項。下面的f i n d 命令從文件系統(tǒng)的根目錄處查找這樣的文件:$ find / -nogroup-pr6)、按照更改時間或時間等查找文件如果希望按照時間來查找文件,可以使用 m t i m e,atime 或ctime 選項。如果系統(tǒng)突然沒有可用空間了,很有可能某一個文件的長度在此期間增長迅速,這時就可以用m t i m e 選項來查找

16、這樣的文件。用減號-來限定更改時間在距今n 日以內(nèi)的文件,而用加號+來限定更改時間在距今n 日以前的文件。希望在系統(tǒng)根目錄下查找更改時間在 5 日以內(nèi)的文件,可以用:$ find / -mtime -5 prfind 中的 -ctime 和 -mtime ,-atime 區(qū)別?文件的 Acs time,atime 是文件最后一次被的時間。文件的 Modified time,mtime 是在寫入文件時隨文件內(nèi)容的更改而更改的。文件的 Change time,ctime 是在寫入文件、更改所有者、權(quán)限或 Inode 的內(nèi)容更改而更改的,即文件狀態(tài)改變時更改。 Ctime(改變)和 mtime(修改

17、)之間的區(qū)別在于是更改某個組件的設(shè)置時隨還是更od a-w myfile,那么這是一個改變( ctime 會改它的內(nèi)容。如果有人說變,mtime 不變);如果有人說 echo foo myfile。則這是一個修改(ctime 和 mtime 都變)。ctime 是文件的索引節(jié)點發(fā)生了改變;mtime 是文本本身的內(nèi)容發(fā)生了變化。7)、查找比某個文件新或舊的文件如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用- n e w e r 選項。它的一般形式為:newest_file_name ! oldest_file_name8)、使用 type 選項在當(dāng)前目錄下查找除目錄以外的

18、所有類型的文件,可以用:$ find . ! -type d pr9)、使用 size 選項可以按照文件長度來查找文件,這里所指的文件長度既可以用塊( b l o c k)來計量,也可以用字節(jié)來計量。以字節(jié)計量文件長度的表達(dá)形式為 N c;以塊計量文件長度只用數(shù)字表示即可。在按照文件長度查找文件時,一般使用這種以字節(jié)表示的文件長度,在查看文件系統(tǒng)的大小,因為這時使用塊來計量更容易轉(zhuǎn)換。在當(dāng)前目錄下查找文件長度大于 1 M 字節(jié)的文件:$ find . -sizec pr10)、使用 depth 選項在使用f i n d 命令時,可能希望先匹配所有的文件,再在子目錄中查找。使用 d e p t h 選項就可以使f i n d 命令這樣做。這樣做的一個原因就是,當(dāng)在使用f i nd 命令向磁帶上備份文件系統(tǒng)時,希望首先備份所有的文件,其次再備中的文件。在下面的例子中, f i n d 命令從文件系統(tǒng)的根目錄開始,查找一個名為C O N .F I L E 的文件。它將首先匹配所有的文件然后再進(jìn)入子目錄中查找。$ find / -name CON.FILE -depth -pr目錄11)、使用 mount 選項在當(dāng)前的文件系統(tǒng)中查找文件(不進(jìn)入其他文件系統(tǒng)),可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論