中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

每(mei)天一個linux命令(ling)(22):find 命令(ling)的(de)參數(shu)詳解

find一些常用參數(shu)的一些(xie)常用實例和一些(xie)具體用法和注意(yi)事項。

1.使用name選項(xiang):

文(wen)(wen)件(jian)名(ming)選項(xiang)是(shi)(shi)find命(ming)令最常用(yong)的選項(xiang),要(yao)么單獨使用(yong)該選項(xiang),要(yao)么和其他選項(xiang)一起使用(yong)。  可以(yi)使用(yong)某種文(wen)(wen)件(jian)名(ming)模式來匹配文(wen)(wen)件(jian),記(ji)住要(yao)用(yong)引號將文(wen)(wen)件(jian)名(ming)模式引起來。  不管當前路徑是(shi)(shi)什么,如果(guo)想要(yao)在自己的根目(mu)錄$HOME中(zhong)查(cha)找(zhao)文(wen)(wen)件(jian)名(ming)符合*.log的文(wen)(wen)件(jian),使用(yong)~作為 'pathname'參數,波浪(lang)號~代表了你的$HOME目(mu)錄。

find ~ -name "*.log" -print  

想要在當前目錄及子目錄中查找(zhao)所有的‘ *.log‘文件,可以用: 

find . -name "*.log" -print  

想(xiang)要的當前目錄及子目錄中(zhong)查找文(wen)件名以一個大寫字母(mu)開頭的文(wen)件,可以用(yong):  

find . -name "[A-Z]*" -print  

想(xiang)要在/etc目(mu)錄中查(cha)找文件(jian)名(ming)以(yi)host開頭的文件(jian),可以(yi)用:  

find /etc ;-name "host*" -print  

想要查找$HOME目錄中的文件,可(ke)以用:  

find ~ -name "*" -print 或find . -print  

要想讓(rang)系統高負荷運行,就從根目錄開始查找所有(you)的文件。  

find / -name "*" -print  

如(ru)果想(xiang)在當(dang)前目錄查找(zhao)文件名以一個(ge)個(ge)小寫字母開頭,最后是4到9加(jia)上.log結束的(de)文件:  

命令(ling):

find . -name "[a-z]*[4-9].log" -print

輸出:

[root@localhost test]# ll

總計 316

-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log

-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log

-rw-r--r-- 1 root root      0 11-13 06:06 log2015.log

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

drwxrwxr-x 2 root root   4096 11-13 06:08 test3

drwxrwxr-x 2 root root   4096 11-13 05:50 test4

[root@localhost test]# find . -name "[a-z]*[4-9].log" -print

./log2014.log

./log2015.log

./test4/log2014.log

[root@localhost test]#

2.用perm選項:

按照文(wen)(wen)(wen)件權限(xian)模式用-perm選項(xiang),按文(wen)(wen)(wen)件權限(xian)模式來查找文(wen)(wen)(wen)件的(de)話。最(zui)好使(shi)用八(ba)進制的(de)權限(xian)表示法。  

如在(zai)當(dang)前目錄下查(cha)找(zhao)文件(jian)(jian)(jian)權限位(wei)為755的(de)文件(jian)(jian)(jian),即(ji)文件(jian)(jian)(jian)屬主(zhu)可以讀(du)、寫、執行,其他用(yong)戶(hu)可以讀(du)、執行的(de)文件(jian)(jian)(jian),可以用(yong):  

[root@localhost test]# find . -perm 755 -print

.

./scf

./scf/lib

./scf/service

./scf/service/deploy

./scf/service/deploy/product

./scf/service/deploy/info

./scf/doc

./scf/bin

[root@localhost test]#

 

還(huan)有一種(zhong)表達方法:在(zai)八進制數字前面(mian)要加一個橫(heng)杠(gang)-,表示(shi)都匹配(pei),如-007就(jiu)相(xiang)當(dang)(dang)于777,-005相(xiang)當(dang)(dang)于555,

命令:

find . -perm -005

輸出(chu):

[root@localhost test]# ll

總計(ji) 316

-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log

-rw-r--r-- 1 root root      ;0 11-13 06:03 log2014.log

-rw-r--r-- 1 root root      0 11-13 06:06 log2015.log

drwxr-xr-x 6 root root ;  4096 10-27 01:58 scf

drwxrwxr-x 2 root root   4096 11-13 06:08 test3

drwxrwxr-x 2 root root   4096 11-13 05:50 test4

[root@localhost test]# find . -perm -005

.

./test4

./scf

./scf/lib

./scf/service

./scf/service/deploy

./scf/service/deploy/product

./scf/service/deploy/info

./scf/doc

./scf/bin

./test3

[root@localhost test]#

3.忽略(lve)某個目錄:

如(ru)(ru)果在(zai)(zai)(zai)查(cha)(cha)找(zhao)文(wen)件時(shi)希(xi)(xi)望(wang)忽(hu)略(lve)某個(ge)目錄,因為你(ni)知道(dao)那(nei)個(ge)目錄中沒有你(ni)所要查(cha)(cha)找(zhao)的文(wen)件,那(nei)么(me)可(ke)以使用(yong)-prune選(xuan)(xuan)項來指(zhi)出需要忽(hu)略(lve)的目錄。在(zai)(zai)(zai)使用(yong)-prune選(xuan)(xuan)項時(shi)要當心,因為如(ru)(ru)果你(ni)同時(shi)使用(yong)了(le)-depth選(xuan)(xuan)項,那(nei)么(me)-prune選(xuan)(xuan)項就會被(bei)find命令忽(hu)略(lve)。如(ru)(ru)果希(xi)(xi)望(wang)在(zai)(zai)(zai)test目錄下查(cha)(cha)找(zhao)文(wen)件,但(dan)不希(xi)(xi)望(wang)在(zai)(zai)(zai)test/test3目錄下查(cha)(cha)找(zhao),可(ke)以用(yong):  

命令:

find test -path "test/test3" -prune -o -print

輸出:

[root@localhost soft]# find test -path "test/test3" -prune -o -print

test

test/log2014.log

test/log2015.log

test/test4

test/test4/log2014.log

test/test4/log2013.log

test/test4/log2012.log

test/scf

test/scf/lib

test/scf/service

test/scf/service/deploy

test/scf/service/deploy/product

test/scf/service/deploy/info

test/scf/doc

test/scf/bin

test/log2013.log

test/log2012.log

[root@localhost soft]#

4.使用(yong)find查找文件的時(shi)候(hou)怎么避(bi)開某個文件目錄(lu): 

實例1:test 目錄下(xia)查找不在test4子(zi)目錄之內(nei)的(de)所有文件

命令:

find test -path "test/test4" -prune -o -print

輸出:

[root@localhost soft]# find test

test

test/log2014.log

test/log2015.log

test/test4

test/test4/log2014.log

test/test4/log2013.log

test/test4/log2012.log

test/scf

test/scf/lib

test/scf/service

test/scf/service/deploy

test/scf/service/deploy/product

test/scf/service/deploy/info

test/scf/doc

test/scf/bin

test/log2013.log

test/log2012.log

test/test3

[root@localhost soft]# find test -path "test/test4" -prune -o -print

test

test/log2014.log

test/log2015.log

test/scf

test/scf/lib

test/scf/service

test/scf/service/deploy

test/scf/service/deploy/product

test/scf/service/deploy/info

test/scf/doc

test/scf/bin

test/log2013.log

test/log2012.log

test/test3

[root@localhost soft]#

說明:

find [-path ..] [expression] 

在路徑列表的(de)后面的(de)是表達式(shi) 

-path "test" -prune -o -print 是 -path "test" -a -prune -o -print 的簡寫表達式按順序(xu)求值, -a 和(he)(he) -o 都是短路求值,與(yu) shell 的 && 和(he)(he) || 類似如果(guo) 

-path "test" 為(wei)(wei)真(zhen)(zhen),則(ze)求值(zhi) -prune , -prune 返回真(zhen)(zhen),與邏(luo)輯表達(da)式為(wei)(wei)真(zhen)(zhen);否則(ze)不求值(zhi) -prune,與邏(luo)輯表達(da)式為(wei)(wei)假(jia)。如果 -path "test" -a -prune 為(wei)(wei)假(jia),則(ze)求值(zhi) -print ,-print返回真(zhen)(zhen),或邏(luo)輯表達(da)式為(wei)(wei)真(zhen)(zhen);否則(ze)不求值(zhi) -print,或邏(luo)輯表達(da)式為(wei)(wei)真(zhen)(zhen)。 

這個(ge)表(biao)達式組合(he)特例可(ke)以用(yong)偽碼寫為:

if -path "test" then  

-prune  

else  

-print  

實例(li)2:避(bi)開多個文(wen)件夾:

命令:

find test \( -path test/test4 -o -path test/test3 \) -prune -o -print 

輸出:

[root@localhost soft]# find test \( -path test/test4 -o -path test/test3 \) -prune -o -print

test

test/log2014.log

test/log2015.log

test/scf

test/scf/lib

test/scf/service

test/scf/service/deploy

test/scf/service/deploy/product

test/scf/service/deploy/info

test/scf/doc

test/scf/bin

test/log2013.log

test/log2012.log

[root@localhost soft]#

 

說明:

圓括號表示(shi)(shi)表達式的(de)結合。  \ 表示(shi)(shi)引(yin)用(yong),即指示(shi)(shi) shell 不對后面的(de)字符作特殊解(jie)釋,而留給 find 命令去(qu)解(jie)釋其意義。  

實例3:查找某(mou)一確定文件(jian),-name等選項加(jia)在-o 之后

命令(ling):

find test \(-path test/test4 -o -path test/test3 \) -prune -o -name "*.log" -print

輸(shu)出:

[root@localhost soft]# find test \( -path test/test4 -o -path test/test3 \) -prune -o -name "*.log" -print

test/log2014.log

test/log2015.log

test/log2013.log

test/log2012.log

[root@localhost soft]#

5.使用user和nouser選項:

按文件(jian)(jian)屬主查找(zhao)文件(jian)(jian):

實例(li)1:在(zai)$HOME目錄(lu)中查找(zhao)文件(jian)(jian)屬(shu)主為peida的文件(jian)(jian) 

命令:

find ~ -user peida -print  

實例(li)2:在(zai)/etc目錄下查找文(wen)件屬主為peida的文(wen)件: 

命令:

find /etc -user peida ;-print  

說(shuo)明:

實(shi)例(li)3:為了查(cha)找(zhao)屬主帳戶已經(jing)被刪(shan)除的文件,可以使用-nouser選項。在(zai)/home目錄(lu)下(xia)查(cha)找(zhao)所有的這(zhe)類文件

命令:

find /home -nouser -print

說明:

這樣就能夠找到那些屬主在/etc/passwd文(wen)件(jian)中(zhong)沒(mei)有有效帳戶(hu)的文(wen)件(jian)。在使用-nouser選(xuan)項時(shi),不必給出用戶(hu)名(ming); find命令能夠為(wei)你完成(cheng)相(xiang)應的工作。

6.使用group和nogroup選項:

就(jiu)像user和(he)nouser選(xuan)(xuan)項一樣,針(zhen)對文(wen)件(jian)所屬于的(de)用戶組, find命(ming)令(ling)也具有同樣的(de)選(xuan)(xuan)項,為了(le)在/apps目錄下(xia)查找(zhao)屬于gem用戶組的(de)文(wen)件(jian),可以用:  

find /apps -group gem -print  

要(yao)查找(zhao)沒有(you)有(you)效所(suo)屬用(yong)戶組的所(suo)有(you)文(wen)件,可以使用(yong)nogroup選(xuan)項。下面的find命令從(cong)文(wen)件系統的根目(mu)錄處查找(zhao)這(zhe)樣的文(wen)件:

find / -nogroup-print

7.按(an)照更改時(shi)間(jian)或訪(fang)問(wen)時(shi)間(jian)等查找(zhao)文件(jian):

如果(guo)希望按照更改時間來查(cha)找(zhao)文件(jian),可以使用mtime,atime或ctime選項。如果(guo)系(xi)統突然(ran)沒有可用空間了(le),很有可能某一(yi)個文件(jian)的長度(du)在此期(qi)間增(zeng)長迅速,這時就可以用mtime選項來查(cha)找(zhao)這樣的文件(jian)。  

用(yong)減號-來限(xian)定(ding)更改時間在(zai)距今(jin)n日以內的文件,而用(yong)加號+來限(xian)定(ding)更改時間在(zai)距今(jin)n日以前的文件。  

希望在(zai)系(xi)統根目錄下(xia)查找更改時間(jian)在(zai)5日以內的文件,可以用(yong):

find / -mtime -5 -print

為了在/var/adm目錄下查(cha)找更(geng)改時(shi)間在3日以前的文件,可以用:

find /var/adm -mtime +3 -print

8.查找比(bi)某個文(wen)(wen)件新或舊的文(wen)(wen)件:

如(ru)果希望查找更(geng)改時(shi)間比某個文件(jian)新(xin)但比另一個文件(jian)舊(jiu)的所有文件(jian),可以使用-newer選項。

它的一(yi)般形式為:  

newest_file_name ! oldest_file_name  

其中,!是(shi)邏輯非符(fu)號(hao)。  

實例(li)1:查找更改時間比(bi)文件(jian)log2012.log新但比文件log2017.log舊的文(wen)件

命令(ling):

find -newer log2012.log ! -newer log2017.log

輸(shu)出:

[root@localhost test]# ll

總(zong)計 316

-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root     61 11-13 06:03 log2013.log

-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log

-rw-r--r-- 1 root root      0 11-13 06:06 log2015.log

-rw-r--r-- 1 root root      0 11-16 14:41 log2016.log

-rw-r--r-- 1 root root      0 11-16 14:43 log2017.log

drwxr-xr-x 6 root root   4096 10-27 01:58 scf

drwxrwxr-x 2 root root   4096 11-13 06:08 test3

drwxrwxr-x 2 root root   4096 11-13 05:50 test4

[root@localhost test]# find -newer log2012.log ! -newer log2017.log

.

./log2015.log

./log2017.log

./log2016.log

./test3

[root@localhost test]#

實例2:查找更改時間在比log2012.log文件新(xin)的文件  

命令:

find . -newer log2012.log -print

輸出:

[root@localhost test]# find -newer log2012.log

.

./log2015.log

./log2017.log

./log2016.log

./test3

[root@localhost test]#

9.使(shi)用type選項:

實例1:在(zai)/etc目錄下(xia)查找所(suo)有(you)的(de)目錄  

命(ming)令:

find /etc -type d -print  

實例2:在當前目錄下查找除目錄以外的所有類型的文(wen)件  

命令(ling):

find . ! -type d -print  

實例3:在(zai)/etc目錄(lu)下查找(zhao)所有的符號鏈接文件

命令:

find /etc -type l -print

10.使用size選項:

可(ke)以(yi)按照文件(jian)(jian)長(chang)度來查找文件(jian)(jian),這里所指(zhi)的文件(jian)(jian)長(chang)度既可(ke)以(yi)用(yong)(yong)(yong)塊(kuai)(block)來計量,也可(ke)以(yi)用(yong)(yong)(yong)字(zi)節(jie)來計量。以(yi)字(zi)節(jie)計量文件(jian)(jian)長(chang)度的表(biao)達形式為(wei)N c;以(yi)塊(kuai)計量文件(jian)(jian)長(chang)度只用(yong)(yong)(yong)數(shu)字(zi)表(biao)示(shi)即可(ke)。  

在按照文(wen)件長(chang)度查(cha)找文(wen)件時(shi),一般使用(yong)這種以字節表示(shi)的文(wen)件長(chang)度,在查(cha)看文(wen)件系統的大(da)小(xiao),因(yin)為這時(shi)使用(yong)塊來計(ji)量(liang)更(geng)容易轉(zhuan)換。  

實(shi)例1:在當前目(mu)錄下查(cha)找文件(jian)長度大于1 M字節的文件(jian)  

命(ming)令:

find . -size +1000000c -print

實(shi)例2:在/home/apache目錄下(xia)查找文件長(chang)度恰好為100字節的文件:  

命(ming)令:

find /home/apache -size 100c -print  

實(shi)例3:在當前目錄下查(cha)找(zhao)長度超過10塊的文件(jian)(一塊等于512字(zi)節) 

命(ming)令:

find . -size +10 -print

11.使(shi)用depth選項:

在(zai)(zai)使(shi)用(yong)find命令時,可能希望(wang)先(xian)匹配所有(you)的(de)文(wen)(wen)件(jian)(jian),再(zai)在(zai)(zai)子目錄中查找。使(shi)用(yong)depth選項就可以使(shi)find命令這(zhe)樣做(zuo)。這(zhe)樣做(zuo)的(de)一(yi)個(ge)原因就是,當(dang)在(zai)(zai)使(shi)用(yong)find命令向磁帶上備(bei)(bei)份(fen)文(wen)(wen)件(jian)(jian)系統時,希望(wang)首先(xian)備(bei)(bei)份(fen)所有(you)的(de)文(wen)(wen)件(jian)(jian),其次(ci)再(zai)備(bei)(bei)份(fen)子目錄中的(de)文(wen)(wen)件(jian)(jian)。  ;

實例1:find命令(ling)從(cong)文件系統的(de)(de)根目錄開始,查(cha)找(zhao)一個名為CON.FILE的(de)(de)文件。   

命令:

find / -name "CON.FILE" -depth -print

說明:

它將(jiang)首先匹配所有的文件(jian)然后再進入子目(mu)錄中查(cha)找(zhao)

12.使用mount選項(xiang): 

  在當(dang)前的文(wen)(wen)件系統中查找文(wen)(wen)件(不進入其他(ta)文(wen)(wen)件系統),可(ke)以使用find命(ming)令的mount選項。

實例1:從當前目錄開始查找位于(yu)本文件(jian)系統中文件(jian)名以XC結尾的文件(jian)  

命令(ling):

find . -name "*.XC" -mount -print 

posted @ 2012-11-16 15:00  peida  閱讀(150537)  評論(9)    收藏  舉報