課程
/運(yùn)維&測(cè)試
/Linux
/ Linux達(dá)人養(yǎng)成計(jì)劃 I
請(qǐng)同學(xué)們跟帖回復(fù)。
2014-12-01
源自: Linux達(dá)人養(yǎng)成計(jì)劃 I 4-3
正在回答
查當(dāng)前目錄下的所有普通文件 -------------------------------------------------------------------------------- # find . -type f -exec ls -l {} \; -rw-r--r--????? 1 root?????? root????????? 34928 2003-02-25??? ./conf/httpd.conf -rw-r--r--????? 1 root?????? root????????? 12959 2003-02-25??? ./conf/magic -rw-r--r--????? 1 root?????? root??????????? 180 2003-02-25??? ./conf.d/README 查當(dāng)前目錄下的所有普通文件,并在- e x e c選項(xiàng)中使用ls -l命令將它們列出 =================================================在/ l o g s目錄中查找更改時(shí)間在5日以前的文件并刪除它們:$ find logs -type f -mtime +5 -exec??? -ok??? rm {} \; =================================================查詢(xún)當(dāng)天修改過(guò)的文件[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -exec??? ls -l??? {} \; =================================================查詢(xún)文件并詢(xún)問(wèn)是否要顯示[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -ok??? ls -l??? {} \;??< ls ... ./classDB.inc.php > ? y-rw-r--r--????? 1 cnscn????? cnscn???????? 13709??? 1月 12 12:22 ./classDB.inc.php[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -ok??? ls -l??? {} \;??< ls ... ./classDB.inc.php > ? n[root@book class]# =================================================查詢(xún)并交給awk去處理[root@book class]# who??? |??? awk??? '{print $1"\t"$2}'cnscn???? pts/0 =================================================awk---grep---sed [root@book class]# df??? -k |??? awk '{print $1}' |??? grep??? -v??? 'none' |??? sed??? s"/\/dev\///g"文件系統(tǒng)sda2sda1[root@book class]# df??? -k |??? awk '{print $1}' |??? grep??? -v??? 'none'文件系統(tǒng)/dev/sda2/dev/sda11) 在/tmp中查找所有的*.h,并在這些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名 A) find??? /tmp??? -name??? "*.h"??? | xargs??? -n50??? grep SYSCALL_VECTORB) grep??? SYSCALL_VECTOR??? /tmp/*.h | cut???? -d':'??? -f1| uniq > filenameC) find??? /tmp??? -name "*.h"??? -exec grep "SYSCALL_VECTOR"??? {}??? \; -print 2)find / -name filename -exec rm -rf {} \;???? find / -name filename -ok rm -rf {} \; 3)比如要查找磁盤(pán)中大于3M的文件:find . -size +3000k -exec ls -ld {} ; 4)將find出來(lái)的東西拷到另一個(gè)地方find *.c -exec cp '{}' /tmp ';' 如果有特殊文件,可以用cpio,也可以用這樣的語(yǔ)法:find dir -name filename -print | cpio -pdv newdir 6)查找2004-11-30 16:36:37時(shí)更改過(guò)的文件# A=`find ./ -name "*php"` |??? ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37
二、linux下find命令的用法
1. 基本用法:????? find / -name 文件名 ???? find ver1.d ver2.d -name '*.c' -print??? 查找ver1.d,ver2.d *.c文件并打印 ???? find . -type d -print 從當(dāng)前目錄查找,僅查找目錄,找到后,打印路徑名??捎糜诖蛴∧夸浗Y(jié)構(gòu)。2. 無(wú)錯(cuò)誤查找:????? find / -name access_log 2 >/dev/null3. 按尺寸查找:????? find / -size 1500c (查找1,500字節(jié)大小的文件,c表示字節(jié))????? find / -size +1500c (查找大于1,500字節(jié)大小的文件,+表示大于)????????? find / -size +1500c (查找小于1,500字節(jié)大小的文件,-表示小于)????4. 按時(shí)間:????? find / -amin n 最后n分鐘 ????? find / -atime n 最后n天????? find / -cmin n 最后n分鐘改變狀態(tài)????? find / -ctime n 最后n天改變狀態(tài)5. 其它:????? find / -empty 空白文件、空白文件夾、沒(méi)有子目錄的文件夾????? find / -false 查找系統(tǒng)中總是錯(cuò)誤的文件????? find / -fstype type 找存在于指定文件系統(tǒng)的文件,如type為ext2????? find / -gid n 組id為n的文件????? find / -group gname 組名為gname的文件????? find / -depth n 在某層指定目錄中優(yōu)先查找文件內(nèi)容????? find / -maxdepth levels 在某個(gè)層次目錄中按遞減方式查找6. 邏輯????? -and 條件與 -or 條件或7. 查找字符串????? find . -name '*.html' -exec grep 'mailto:'{}
?find命令
???? 功能:在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作。此命令提供了相當(dāng)多的查找條件,功能很強(qiáng)大。
???? 語(yǔ)法:find 起始目錄 尋找條件 操作
???? 說(shuō)明:find命令從指定的起始目錄開(kāi)始,遞歸地搜索其各個(gè)子目錄,查找滿足尋找條件的文件并對(duì)之采取相關(guān)的操作。
???? 該命令提供的尋找條件可以是一個(gè)用邏輯運(yùn)算符not、and、or組成的復(fù)合條件。邏輯運(yùn)算符and、or、not的含義為:
???? (1)and:邏輯與,在命令中用“-a”表示,是系統(tǒng)缺省的選項(xiàng),表示只有當(dāng)所給的條件都滿足時(shí),尋找條件才算滿足。例如:
???? $ find –name ’tmp’ –xtype c -user ’inin’
???? 該命令尋找三個(gè)給定條件都滿足的所有文件。
???? ?。?)or:邏輯或,在命令中用“-o”表示。該運(yùn)算符表示只要所給的條件中有一個(gè)滿足時(shí),尋找條件就算滿足。例如:
???? $ find –name ’tmp’ –o –name ’mina*’
????
???? 該命令查詢(xún)文件名為’tmp’或是匹配’mina*’的所有文件。
???? ?。?)not:邏輯非,在命令中用“!”表示。該運(yùn)算符表示查找不滿足所給條件的文件。例如:
???? $ find ! –name ’tmp’
???? 該命令查詢(xún)文件名不是’tmp’的所有文件。
???? 需要說(shuō)明的是:當(dāng)使用很多的邏輯選項(xiàng)時(shí),可以用括號(hào)把這些選項(xiàng)括起來(lái)。為了避免Shell本身對(duì)括號(hào)引起誤解,在話號(hào)前需要加轉(zhuǎn)義字符“”來(lái)去除括號(hào)的意義。
???? 例:$ find (–name ’tmp’ –xtype c -user ’inin’ )
???? 尋找條件有以下選項(xiàng):
???? 首先,下列各個(gè)選項(xiàng)中的n值可以有三種輸入方式,假設(shè)n為20,則:
???? +20 表示20以后(21,22,23等)
???? -20 表示20以前(19,18,17等)
???? 20 表示正好是20
???? 1. 以名稱(chēng)和文件屬性查找。
???? - name ’字串’ 查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
???? - lname ’字串’ 查找文件名匹配所給字串的所有符號(hào)鏈接文件,字串內(nèi)可用通配符*、?、[ ]。
???? -gid n 查找屬于ID號(hào)為n的用戶(hù)組的所有文件。
???? -uid n 查找屬于ID號(hào)為n的用戶(hù)的所有文件。
???? -group ’字串’ 查找屬于用戶(hù)組名為所給字串的所有的文件。
???? -user ’字串’ 查找屬于用戶(hù)名為所給字串的所有的文件。
???? -nogroup 查找無(wú)有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。
???? -nouser 查找無(wú)有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。
???? -newer file1 ! file2 查找更改時(shí)間比文件f i l e 1新但比文件f i l e 2舊的文件。
???? -empty 查找大小為0的目錄或文件。
???? -path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
???? -perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。
???? -size n[bckw] 查找指定文件大小的文件,n后面的字符表示單位,缺省為b,代表512字節(jié)的塊。
???? -type x 查找類(lèi)型為x的文件,x為下列字符之一:
???? b 塊設(shè)備文件
???? c 字符設(shè)備文件
???? d 目錄文件
???? p 命名管道(FIFO)
???? f 普通文件
???? l 符號(hào)鏈接文件(symbolic links)
???? s socket文件
???? -xtype x 與-type基本相同,但只查找符號(hào)鏈接文件。
???? 2. 以時(shí)間為條件查找
???? - amin n 查找n分鐘以前被訪問(wèn)過(guò)的所有文件。
???? - atime n 查找n天以前被訪問(wèn)過(guò)的所有文件。
???? - cmin n 查找n分鐘以前文件狀態(tài)被修改過(guò)的所有文件。
???? - ctime n 查找n天以前文件狀態(tài)被修改過(guò)的所有文件。
???? - mmin n 查找n分鐘以前文件內(nèi)容被修改過(guò)的所有文件。
???? - mtime n 查找n天以前文件內(nèi)容被修改過(guò)的所有文件。
???? 3. 可執(zhí)行的操作
???? - exec 命令名稱(chēng) {} \; 對(duì)符合條件的文件執(zhí)行所給的unix 命令,而不詢(xún)問(wèn)用戶(hù)是否需要執(zhí)行該命令。{}表示命令的參數(shù)即為所找到的文件,命令的末尾必須以“ \;”結(jié)束,"{}"和"\;"之間必須有一個(gè)空格。
???? - ok 命令名稱(chēng) {} \; 對(duì)符合條件的文件執(zhí)行所給的Linux 命令,與exec不同的是,它會(huì)詢(xún)問(wèn)用戶(hù)是否需要執(zhí)行該命令。
???? - ls 詳細(xì)列出所找到的所有文件。
???? - fprintf 文件名 將找到的文件名寫(xiě)入指定文件。
???? - print 在標(biāo)準(zhǔn)輸出設(shè)備上顯示查找出的文件名。
???? - printf 格式 格式的寫(xiě)法請(qǐng)參考有關(guān)C語(yǔ)言的書(shū)。
????使用name選項(xiàng)
????文件名選項(xiàng)是f i n d命令最常用的選項(xiàng),要么單獨(dú)使用該選項(xiàng),要么和其他選項(xiàng)一起使用。
????可以使用某種文件名模式來(lái)匹配文件,記住要用引號(hào)將文件名模式引起來(lái)。
????不管當(dāng)前路徑是什么,如果想要在自己的根目錄$ H O M E中查找文件名符合* . t x t的文件,
????使用~作為' p a t h n a m e參數(shù),波浪號(hào)~代表了你的$ H O M E目錄。
????$ find ~ -name "*.txt" -print
????想要在當(dāng)前目錄及子目錄中查找所有的' * . t x t'文件,可以用:
????$ find . -name "*.txt" -print
????想要的當(dāng)前目錄及子目錄中查找文件名以一個(gè)大寫(xiě)字母開(kāi)頭的文件,可以用:
????$ find . -name "[A-Z]*" -print
????想要在/ e t c目錄中查找文件名以h o s t開(kāi)頭的文件,可以用:
????$ find /etc -name "host*" -print
????想要查找$ H O M E目錄中的文件,可以用:
????$ find ~ -name "*" -print 或find . -print
????要想讓系統(tǒng)高負(fù)荷運(yùn)行,就從根目錄開(kāi)始查找所有的文件。如果希望在系統(tǒng)管理員那里
????保留一個(gè)好印象的話,最好在這么做之前考慮清楚!
????$ find / -name "*" -print
????如果想在當(dāng)前目錄查找文件名以?xún)蓚€(gè)小寫(xiě)字母開(kāi)頭,跟著是兩個(gè)數(shù)字,最后是* . t x t的文
????件,下面的命令就能夠返回名為a x 3 7 . t x t的文件:
????$ find . -name "[a-z][a-z][0--9][0--9].txt" -print
????使用perm選項(xiàng)
????如果希望按照文件權(quán)限模式來(lái)查找文件的話,可以采用- p e r m選項(xiàng)。你可能需要找到所有
????用戶(hù)都具有執(zhí)行權(quán)限的文件,或是希望查看某個(gè)用戶(hù)目錄下的文件權(quán)限類(lèi)型。在使用這一選
????項(xiàng)的時(shí)候,最好使用八進(jìn)制的權(quán)限表示法。
????為了在當(dāng)前目錄下查找文件權(quán)限位為7 5 5的文件,即文件屬主可以讀、寫(xiě)、執(zhí)行,其他用
????戶(hù)可以讀、執(zhí)行的文件,可以用:
????$ find . -perm 755 -print
????如果希望在當(dāng)前目錄下查找所有用戶(hù)都可讀、寫(xiě)、執(zhí)行的文件(要小心這種情況),我們
????可以使用f i n d命令的- p e r m選項(xiàng)。在八進(jìn)制數(shù)字前面要加一個(gè)橫杠-。在下面的命令中- p e r m代
????表按照文件權(quán)限查找,而' 0 0 7'和你在c h m o d命令的絕對(duì)模式中所采用的表示法完全相同。
????$ find . -perm -007 -print
????忽略某個(gè)目錄
????如果在查找文件時(shí)希望忽略某個(gè)目錄,因?yàn)槟阒滥莻€(gè)目錄中沒(méi)有你所要查找的文件,
????那么可以使用- p r u n e選項(xiàng)來(lái)指出需要忽略的目錄。在使用- p r u n e選項(xiàng)時(shí)要當(dāng)心,因?yàn)槿绻阃?/p>
????時(shí)使用了- d e p t h選項(xiàng),那么- p r u n e選項(xiàng)就會(huì)被f i n d命令忽略。
????如果希望在/ a p p s目錄下查找文件,但不希望在/ a p p s / b i n目錄下查找,可以用:
????$ find /apps -name "/apps/bin" -prune -o -print
????使用user和nouser選項(xiàng)
????如果希望按照文件屬主查找文件,可以給出相應(yīng)的用戶(hù)名。例如,在$ H O M E目錄中查找
????文件屬主為d a v e的文件,可以用:
????$ find ~ -user dave -print
????在/ e t c目錄下查找文件屬主為u u c p的文件:
????$ find /etc -user uucp -print
????為了查找屬主帳戶(hù)已經(jīng)被刪除的文件,可以使用- n o u s e r選項(xiàng)。這樣就能夠找到那些屬主
????在/ e t c / p a s s w d文件中沒(méi)有有效帳戶(hù)的文件。在使用- n o u s e r選項(xiàng)時(shí),不必給出用戶(hù)名; f i n d命令
????能夠?yàn)槟阃瓿上鄳?yīng)的工作。例如,希望在/ h o m e目錄下查找所有的這類(lèi)文件,可以用:
????$ find /home -nouser -print
????使用group和nogroup選項(xiàng)
????就像u s e r和n o u s e r選項(xiàng)一樣,針對(duì)文件所屬于的用戶(hù)組, f i n d命令也具有同樣的選項(xiàng),為
????了在/ a p p s目錄下查找屬于a c c t s用戶(hù)組的文件,可以用:
????$ find /apps -group accts -print
????要查找沒(méi)有有效所屬用戶(hù)組的所有文件,可以使用n o g r o u p選項(xiàng)。下面的f i n d命令從文件
????系統(tǒng)的根目錄處查找這樣的文件
????$ fine/-nogroup-print
????按照更改時(shí)間查找文件
????如果希望按照更改時(shí)間來(lái)查找文件,可以使用m t i m e選項(xiàng)。如果系統(tǒng)突然沒(méi)有可用空間了,
????很有可能某一個(gè)文件的長(zhǎng)度在此期間增長(zhǎng)迅速,這時(shí)就可以用m t i m e選項(xiàng)來(lái)查找這樣的文件。
????用減號(hào)-來(lái)限定更改時(shí)間在距今n日以?xún)?nèi)的文件,而用加號(hào)+來(lái)限定更改時(shí)間在距今n日以前的
????文件。
????希望在系統(tǒng)根目錄下查找更改時(shí)間在5日以?xún)?nèi)的文件,可以用:
????$ find / -mtime -5 -print
????為了在/ v a r / a d m目錄下查找更改時(shí)間在3日以前的文件,可以用:
????$ find /var/adm -mtime +3 -print
????查找比某個(gè)文件新或舊的文件
????如果希望查找更改時(shí)間比某個(gè)文件新但比另一個(gè)文件舊的所有文件,可以使用- n e w e r選
????項(xiàng)。它的一般形式為:
????newest_file_name ! oldest_file_name
????其中,!是邏輯非符號(hào)。
????這里有兩個(gè)文件,它們的更改時(shí)間大約相差兩天。
????下面給出的f i n d命令能夠查找更改時(shí)間比文件a g e . a w k新但比文件b e l t s . a w k舊的文件:
????如果想使用f i n d命令的這一選項(xiàng)來(lái)查找更改時(shí)間在兩個(gè)小時(shí)以?xún)?nèi)的文件,除非有一個(gè)現(xiàn)成
????的文件其更改時(shí)間恰好在兩個(gè)小時(shí)以前,否則就沒(méi)有可用來(lái)比較更改時(shí)間的文件。為了解決
????這一問(wèn)題,可以首先創(chuàng)建一個(gè)文件并將其日期和時(shí)間戳設(shè)置為所需要的時(shí)間。這可以用t o u c h
????命令來(lái)實(shí)現(xiàn)。
????假設(shè)現(xiàn)在的時(shí)間是2 3 : 4 0,希望查找更改時(shí)間在兩個(gè)小時(shí)以?xún)?nèi)的文件,可以首先創(chuàng)建這樣
????一個(gè)文件:
????一個(gè)符合要求的文件已經(jīng)被創(chuàng)建;這里我們假設(shè)今天是五月四日,而該文件的更改時(shí)間
????是2 1 : 4 0,比現(xiàn)在剛好早兩個(gè)小時(shí)。
????現(xiàn)在我們就可以使用f i n d命令的- n e w e r選項(xiàng)在當(dāng)前目錄下查找所有更改時(shí)間在兩個(gè)小時(shí)以
????內(nèi)的文件:
????$ find . -newer dstamp -print
????使用type選項(xiàng)
????U N I X或L I N U X系統(tǒng)中有若干種不同的文件類(lèi)型,這部分內(nèi)容我們?cè)谇懊娴恼鹿?jié)已經(jīng)做了
????介紹,這里就不再贅述。如果要在/ e t c目錄下查找所有的目錄,可以用:
????$ find /etc -type d -print
????為了在當(dāng)前目錄下查找除目錄以外的所有類(lèi)型的文件,可以用:
????$ find . ! -type d -print
????為了在/ e t c目錄下查找所有的符號(hào)鏈接文件,可以用:
????$ find /etc -type l -print
????使用size選項(xiàng)
????可以按照文件長(zhǎng)度來(lái)查找文件,這里所指的文件長(zhǎng)度既可以用塊( b l o c k)來(lái)計(jì)量,也可
????以用字節(jié)來(lái)計(jì)量。以字節(jié)計(jì)量文件長(zhǎng)度的表達(dá)形式為N c;以塊計(jì)量文件長(zhǎng)度只用數(shù)字表示即
????可。
????就我個(gè)人而言,我總是使用以字節(jié)計(jì)的方式,在按照文件長(zhǎng)度查找文件時(shí),大多數(shù)人都
????喜歡使用這種以字節(jié)表示的文件長(zhǎng)度,而不用塊的數(shù)目來(lái)表示,除非是在查看文件系統(tǒng)的大
????小,因?yàn)檫@時(shí)使用塊來(lái)計(jì)量更容易轉(zhuǎn)換。
????為了在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件,可以用:
????$ find . -size +1000000c -print
????為了在/ h o m e / a p a c h e目錄下查找文件長(zhǎng)度恰好為1 0 0字節(jié)的文件,可以用:
????$ find /home/apache -size 100c -print
????為了在當(dāng)前目錄下查找長(zhǎng)度超過(guò)1 0塊的文件(一塊等于5 1 2字節(jié)),可以用:
????$ find . -size +10 -print
-user ’字串’ 查找屬于用戶(hù)名為所給字串的所有的文件。
-empty 查找大小為 0的目錄或文件。
-path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
-perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示單位,缺省為 b,代表512字節(jié)的塊。
-type x 查找類(lèi)型為 x 的文件,x 為下列字符之一
06_szez?的筆記
文件搜索命令findfind [搜索范圍] [搜索條件]* 匹配任意內(nèi)容 匹配任意一個(gè)字符[] 匹配任意一個(gè)中括號(hào)內(nèi)的字符-10 10天內(nèi)修改的文件10 10天當(dāng)天修改的文件+10 10天前修改的文件atime 文件訪問(wèn)時(shí)間ctime 改變?cè)L問(wèn)時(shí)間mtime 修改文件內(nèi)容find . -size 25k(查找文件大小是25KB的文件)-25k 小于25KB的文件25k 等于25KB的文件+25k 大于25KB的文件find . -inum 262422查找i節(jié)點(diǎn)是262422的文件
網(wǎng)絡(luò)資源
一、find 命令格式
1、find命令的一般形式為
find pathname -options [-print -exec -ok ...]
2、find命令的參數(shù)
pathname: find命令所查找的目錄路徑。例如用.來(lái)表示當(dāng)前目錄用/來(lái)表示系統(tǒng)根目錄。
-print find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為"command { } \; "注意"{ }"和“\;”之間的空格。
-ok 和-exec的作用相同只不過(guò)以一種更為安全的模式來(lái)執(zhí)行該參數(shù)所給出的shell命令在執(zhí)行每一個(gè)命令之前都會(huì)給出提示讓用戶(hù)來(lái)確定是否執(zhí)行。
3、find命令選項(xiàng)
-name?按照文件名查找文件。
-perm?按照文件權(quán)限來(lái)查找文件。
-prune?使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找如果同時(shí)使用-depth選項(xiàng)那么-prune將被find命令忽略。
-user?按照文件屬主來(lái)查找文件。
-group?按照文件所屬的組來(lái)查找文件。
-mtime -n +n?按照文件的更改時(shí)間來(lái)查找文件 - n表示文件更改時(shí)間距現(xiàn)在n天以?xún)?nèi)+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng)但它們都和-m time選項(xiàng)。
-nogroup?查找無(wú)有效所屬組的文件即該文件所屬的組在/etc/groups中不存在。
-nouser?查找無(wú)有效屬主的文件即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 ?查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type?查找某一類(lèi)型的文件諸如b - 塊設(shè)備文件。d - 目錄。c - 字符設(shè)備文件。p - 管道文件。l - 符號(hào)鏈接文件。f - 普通文件。
-size n[c] 查找文件長(zhǎng)度為n塊的文件帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)。
-depth在查找文件時(shí)首先查找當(dāng)前目錄中的文件然后再在其子目錄中查找。
-fstype查找位于某一類(lèi)型文件系統(tǒng)中的文件這些文件系統(tǒng)類(lèi)型通常可以在配置文件/etc/fstab中找到該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。
-mount在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。
-follow如果find命令遇到符號(hào)鏈接文件就跟蹤至鏈接所指向的文件。
-cpio對(duì)匹配的文件使用cpio命令將這些文件備份到磁帶設(shè)備中。
另外,下面三個(gè)的區(qū)別:
? ?-amin n?查找系統(tǒng)中最后N分鐘訪問(wèn)的文件
-atime n?查找系統(tǒng)中最后n*24小時(shí)訪問(wèn)的文件
-cmin n?查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件
-ctime n?查找系統(tǒng)中最后n*24小時(shí)被改變文件狀態(tài)的文件
? ?-mmin n?查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件
-mtime n?查找系統(tǒng)中最后n*24小時(shí)被改變文件數(shù)據(jù)的文件
4、使用exec或ok來(lái)執(zhí)行shell命令
使用find時(shí)只要把想要的操作寫(xiě)在一個(gè)文件里就可以用exec來(lái)配合find查找很方便的
在有些操作系統(tǒng)中只允許-exec選項(xiàng)執(zhí)行諸如l s或ls -l這樣的命令。大多數(shù)用戶(hù)使用這一選項(xiàng)是為了查找舊文件并刪除它們。建議在真正執(zhí)行rm命令刪除文件之前最好先用ls命令看一下確認(rèn)它們是所要?jiǎng)h除的文件。
exec選項(xiàng)后面跟隨著所要執(zhí)行的命令或腳本然后是一對(duì)兒{ }一個(gè)空格和一個(gè)最后是一個(gè)分號(hào)。為了使用exec選項(xiàng)必須要同時(shí)使用print選項(xiàng)。如果驗(yàn)證一下find命令會(huì)發(fā)現(xiàn)該命令只輸出從當(dāng)前路徑起的相對(duì)路徑及文件名。
例如為了用ls -l命令列出所匹配到的文件可以把ls -l命令放在find命令的-exec選項(xiàng)中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中find命令匹配到了當(dāng)前目錄下的所有普通文件并在-exec選項(xiàng)中使用ls -l命令將它們列出。
在/logs目錄中查找更改時(shí)間在5日以前的文件并刪除它們
$ find logs -type f -mtime +5 -exec rm { } \;
記住在shell中用任何方式刪除文件之前應(yīng)當(dāng)先查看相應(yīng)的文件一定要小心當(dāng)使用諸如mv或rm命令時(shí)可以使用-exec選項(xiàng)的安全模式。它將在對(duì)每個(gè)匹配到的文件進(jìn)行操作之前提示你。
在下面的例子中 find命令在當(dāng)前目錄中查找所有文件名以.LOG結(jié)尾、更改時(shí)間在5日以上的文件并刪除它們只不過(guò)在刪除之前先給出提示。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y鍵刪除文件按n鍵不刪除。
任何形式的命令都可以在-exec選項(xiàng)中使用。
在下面的例子中我們使用grep命令。find命令首先匹配所有文件名為“ passwd*”的文件例如passwd、passwd.old、passwd.bak然后執(zhí)行g(shù)rep命令看看在這些文件中是否存在一個(gè)sam用戶(hù)。
# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash
二、find命令的例子
1、查找當(dāng)前用戶(hù)主目錄下的所有文件下面兩種方法都可以使用
$ find $HOME -print
$ find ~ -print
2、讓當(dāng)前目錄中文件屬主具有讀、寫(xiě)權(quán)限并且文件所屬組的用戶(hù)和其他用戶(hù)具有讀權(quán)限的文件
$ find . -type f -perm 644 -exec ls -l { } \;
3、為了查找系統(tǒng)中所有文件長(zhǎng)度為0的普通文件并列出它們的完整路徑
$ find / -type f -size 0 -exec ls -l { } \;
4、查找/var/logs目錄中更改時(shí)間在7日以前的普通文件并在刪除之前詢(xún)問(wèn)它們
$ find /var/logs -type f -mtime +7 -ok rm { } \;
5、為了查找系統(tǒng)中所有屬于root組的文件
$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1
6、find命令將刪除當(dāng)目錄中訪問(wèn)時(shí)間在7日以來(lái)、含有數(shù)字后綴的admin.log文件。
該命令只檢查三位數(shù)字所以相應(yīng)文件的后綴不要超過(guò)999。先建幾個(gè)admin.log*的文件 才能使用下面這個(gè)命令
$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n
7、為了查找當(dāng)前文件系統(tǒng)中的所有目錄并排序
$ find . -type d | sort
8、為了查找系統(tǒng)中所有的rmt磁帶設(shè)備
$ find /dev/rmt -print
三、find 命令的參數(shù)
下面是find一些常用參數(shù)的例子有用到的時(shí)候查查就行了像上面前幾個(gè)貼子都用到了其中的的一些參數(shù)也可以用man或查看論壇里其它貼子有find的命令手冊(cè)
1、使用name選項(xiàng)
文件名選項(xiàng)是find命令最常用的選項(xiàng)要么單獨(dú)使用該選項(xiàng)要么和其他選項(xiàng)一起使用。
可以使用某種文件名模式來(lái)匹配文件記住要用引號(hào)將文件名模式引起來(lái)。
不管當(dāng)前路徑是什么如果想要在自己的根目錄$HOME中查找文件名符合*.txt的文件使用~作為 'pathname'參數(shù)波浪號(hào)~代表了你的$HOME目錄。
$ find ~ -name "*.txt" -print
想要在當(dāng)前目錄及子目錄中查找所有的‘ *.txt’文件可以用
$ find . -name "*.txt" -print
想要的當(dāng)前目錄及子目錄中查找文件名以一個(gè)大寫(xiě)字母開(kāi)頭的文件可以用
$ find . -name "[A-Z]*" -print
想要在/etc目錄中查找文件名以host開(kāi)頭的文件可以用
$ find /etc -name "host*" -print
想要查找$HOME目錄中的文件可以用
$ find ~ -name "*" -print 或find . -print
要想讓系統(tǒng)高負(fù)荷運(yùn)行就從根目錄開(kāi)始查找所有的文件。
$ find / -name "*" -print
如果想在當(dāng)前目錄查找文件名以?xún)蓚€(gè)小寫(xiě)字母開(kāi)頭跟著是兩個(gè)數(shù)字最后是.txt的文件下面的命令就能夠返回名為ax37.txt的文件
$find . -name "[a-z][a-z][0--9][0--9].txt" -print
2、用perm選項(xiàng)
按照文件權(quán)限模式用-perm選項(xiàng),按文件權(quán)限模式來(lái)查找文件的話。最好使用八進(jìn)制的權(quán)限表示法。
如在當(dāng)前目錄下查找文件權(quán)限位為755的文件即文件屬主可以讀、寫(xiě)、執(zhí)行其他用戶(hù)可以讀、執(zhí)行的文件可以用
$ find . -perm 755 -print
還有一種表達(dá)方法在八進(jìn)制數(shù)字前面要加一個(gè)橫杠-表示都匹配如-007就相當(dāng)于777-006相當(dāng)于666
# ls -l
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp
# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./temp
-perm mode:文件許可正好符合mode
-perm +mode:文件許可部分符合mode
-perm -mode: 文件許可完全符合mode
3、忽略某個(gè)目錄
如果在查找文件時(shí)希望忽略某個(gè)目錄因?yàn)槟阒滥莻€(gè)目錄中沒(méi)有你所要查找的文件那么可以使用-prune選項(xiàng)來(lái)指出需要忽略的目錄。在使用-prune選項(xiàng)時(shí)要當(dāng)心因?yàn)槿绻阃瑫r(shí)使用了-depth選項(xiàng)那么-prune選項(xiàng)就會(huì)被find命令忽略。
如果希望在/apps目錄下查找文件但不希望在/apps/bin目錄下查找可以用
$ find /apps -path "/apps/bin" -prune -o -print
4、使用find查找文件的時(shí)候怎么避開(kāi)某個(gè)文件目錄
比如要在/usr/sam目錄下查找不在dir1子目錄之內(nèi)的所有文件
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在路徑列表的后面的是表達(dá)式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的簡(jiǎn)寫(xiě)表達(dá)式按順序求值, -a 和 -o 都是短路求值與 shell 的 && 和 || 類(lèi)似如果 -path "/usr/sam" 為真則求值 -prune , -prune 返回真與邏輯表達(dá)式為真否則不求值 -prune與邏輯表達(dá)式為假。如果 -path "/usr/sam" -a -prune 為假則求值 -print -print返回真或邏輯表達(dá)式為真否則不求值 -print或邏輯表達(dá)式為真。
這個(gè)表達(dá)式組合特例可以用偽碼寫(xiě)為
if -path "/usr/sam" then
? ? ? ? ? ?-prune
else
? ? ? ? ? ?-print
避開(kāi)多個(gè)文件夾
find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
圓括號(hào)表示表達(dá)式的結(jié)合。
\ 表示引用即指示 shell 不對(duì)后面的字符作特殊解釋而留給 find 命令去解釋其意義。
查找某一確定文件-name等選項(xiàng)加在-o 之后
#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print
5、使用user和nouser選項(xiàng)
按文件屬主查找文件如在$HOME目錄中查找文件屬主為sam的文件可以用
$ find ~ -user sam -print
在/etc目錄下查找文件屬主為uucp的文件
$ find /etc -user uucp -print
為了查找屬主帳戶(hù)已經(jīng)被刪除的文件可以使用-nouser選項(xiàng)。這樣就能夠找到那些屬主在/etc/passwd文件中沒(méi)有有效帳戶(hù)的文件。在使用-nouser選項(xiàng)時(shí)不必給出用戶(hù)名 find命令能夠?yàn)槟阃瓿上鄳?yīng)的工作。
例如希望在/home目錄下查找所有的這類(lèi)文件可以用
$ find /home -nouser -print
6、使用group和nogroup選項(xiàng)
就像user和nouser選項(xiàng)一樣針對(duì)文件所屬于的用戶(hù)組 find命令也具有同樣的選項(xiàng)為了在/apps目錄下查找屬于gem用戶(hù)組的文件可以用
$ find /apps -group gem -print
要查找沒(méi)有有效所屬用戶(hù)組的所有文件可以使用nogroup選項(xiàng)。下面的find命令從文件系統(tǒng)的根目錄處查找這樣的文件
$ find / -nogroup-print
7、按照更改時(shí)間或訪問(wèn)時(shí)間等查找文件
如果希望按照更改時(shí)間來(lái)查找文件可以使用mtime,atime或ctime選項(xiàng)。如果系統(tǒng)突然沒(méi)有可用空間了很有可能某一個(gè)文件的長(zhǎng)度在此期間增長(zhǎng)迅速這時(shí)就可以用mtime選項(xiàng)來(lái)查找這樣的文件。
用減號(hào)-來(lái)限定更改時(shí)間在距今n日以?xún)?nèi)的文件而用加號(hào)+來(lái)限定更改時(shí)間在距今n日以前的文件。
希望在系統(tǒng)根目錄下查找更改時(shí)間在5日以?xún)?nèi)的文件可以用
$ find / -mtime -5 -print
為了在/var/adm目錄下查找更改時(shí)間在3日以前的文件可以用
$ find /var/adm -mtime +3 -print
8、查找比某個(gè)文件新或舊的文件
如果希望查找更改時(shí)間比某個(gè)文件新但比另一個(gè)文件舊的所有文件可以使用-newer選項(xiàng)。它的一般形式為
newest_file_name ! oldest_file_name
其中是邏輯非符號(hào)。
查找更改時(shí)間比文件sam新但比文件temp舊的文件
例有兩個(gè)文件
-rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel
# find -newer httpd1.conf ! -newer temp -ls
1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf
1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp
1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel
查找更改時(shí)間在比temp文件新的文件
$ find . -newer temp -print
9、使用type選項(xiàng)
在/etc目錄下查找所有的目錄可以用
$ find /etc -type d -print
在當(dāng)前目錄下查找除目錄以外的所有類(lèi)型的文件可以用
$ find . ! -type d -print
在/etc目錄下查找所有的符號(hào)鏈接文件可以用
$ find /etc -type l -print
10、使用size選項(xiàng)
可以按照文件長(zhǎng)度來(lái)查找文件這里所指的文件長(zhǎng)度既可以用塊block來(lái)計(jì)量也可以用字節(jié)來(lái)計(jì)量。以字節(jié)計(jì)量文件長(zhǎng)度的表達(dá)形式為N c以塊計(jì)量文件長(zhǎng)度只用數(shù)字表示即可。
在按照文件長(zhǎng)度查找文件時(shí)一般使用這種以字節(jié)表示的文件長(zhǎng)度在查看文件系統(tǒng)的大小因?yàn)檫@時(shí)使用塊來(lái)計(jì)量更容易轉(zhuǎn)換。
在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件
$ find . -size +1000000c -print
在/home/apache目錄下查找文件長(zhǎng)度恰好為100字節(jié)的文件
$ find /home/apache -size 100c -print
在當(dāng)前目錄下查找長(zhǎng)度超過(guò)10塊的文件一塊等于512字節(jié)
$ find . -size +10 -print
11、使用depth選項(xiàng)
在使用find命令時(shí)可能希望先匹配所有的文件再在子目錄中查找。使用depth選項(xiàng)就可以使find命令這樣做。這樣做的一個(gè)原因就是當(dāng)在使用find命令向磁帶上備份文件系統(tǒng)時(shí)希望首先備份所有的文件其次再備份子目錄中的文件。
在下面的例子中 find命令從文件系統(tǒng)的根目錄開(kāi)始查找一個(gè)名為CON.FILE的文件。
它將首先匹配所有的文件然后再進(jìn)入子目錄中查找。
$ find / -name "CON.FILE" -depth -print
12、使用mount選項(xiàng)
在當(dāng)前的文件系統(tǒng)中查找文件不進(jìn)入其他文件系統(tǒng)可以使用find命令的mount選項(xiàng)。
從當(dāng)前目錄開(kāi)始查找位于本文件系統(tǒng)中文件名以XC結(jié)尾的文件
$ find . -name "*.XC" -mount -print
norma Netp< @g: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件$ find . -size +1000000c -print在/home/apache目錄下查找文件長(zhǎng)度恰好為100字節(jié)的文件$ find /home/apache -size 100c -print在當(dāng)前目錄下查找長(zhǎng)度超過(guò)10塊的文件一塊等于512字節(jié)$ find . -size +10 -print11、使用depth選項(xiàng)在使用find命令時(shí)可能希望先匹配所有的文件再在子目錄中查找。使用depth選項(xiàng)就可以使find命令這樣做。這樣做的一個(gè)原因就是當(dāng)在使用find命令向磁帶上備份文件系統(tǒng)時(shí)希望首先備份所有的文件其次再備份子目錄中的文件。在下面的例子中 find命令從文件系統(tǒng)的根目錄開(kāi)始查找一個(gè)名為CON.FILE的文件。它將首先匹配所有的文件然后再進(jìn)入子目錄中查找。$ find / -name "CON.FILE" -depth -print12、使用mount選項(xiàng)在當(dāng)前的文件系統(tǒng)中查找文件不進(jìn)入其他文件系統(tǒng)可以使用find命令的mount選項(xiàng)。從當(dāng)前目錄開(kāi)始查找位于本文件系統(tǒng)中文件名以XC結(jié)尾的文件$ find . -name "*.XC" -mount -print
-user username?? ??? ?#按文件屬主來(lái)查找-group groupname?? ?#按組來(lái)查找-mtime -n +n?? ??? ?#按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-atime -n +n?? ??? ?#按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm #按執(zhí)行權(quán)限來(lái)查找-ctime -n +n?? ??? ?#按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-nogroup?? ??? ?#查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?? ??? ??? ?#查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存在-newer f1 !f2?? ??? ?#查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件-type b/d/c/p/l/f?? ?#查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件$find . -type d -print #在當(dāng)前目錄下查找目錄文件$find . ! -type d -print #在當(dāng)前目錄下查找非目錄文件$find . -type l -print #在當(dāng)前目錄下查找符號(hào)鏈接文件-size n[c]?? ??? ?#查長(zhǎng)度為n塊[或n字節(jié)]的文件$find . -size +1000000c -print #在當(dāng)前目錄下查長(zhǎng)度大于1Mb的文件$find . -size 100c -print #在當(dāng)前目錄下查長(zhǎng)度為100c的文件$find . -size +10 -print #在當(dāng)前目錄下查長(zhǎng)度超過(guò)10塊的文件(1塊=512字節(jié))-depth?? ??? ??? ?#使查找在進(jìn)入子目錄前先行查找完本目錄(廣度優(yōu)先)-mount?? ??? ??? ?#查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)-follow?? ??? ??? ?#如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件-cpio?? ??? ??? ?#對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中-prune?? ??? ??? ?#忽略某個(gè)目錄
find \(–name ’tmp’ –xtype c -user ’inin’ \)
我覺(jué)的現(xiàn)在我應(yīng)該說(shuō)下出了查詢(xún)條件,在find中的option的內(nèi)容了:
在option中,具體有參數(shù):
-name ’字串’ 查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符 *、?、[ ]。
-lname ’字串’ 查找文件名匹配所給字串的所有符號(hào)鏈接文件,字串內(nèi)可用通配符 *、?、[ ]。
-gid n 查找屬于ID號(hào)為 n 的用戶(hù)組的所有文件。
-uid n 查找屬于ID號(hào)為 n 的用戶(hù)的所有文件。
-group ’字串’ 查找屬于用戶(hù)組名為所給字串的所有的文件。
-type x 查找類(lèi)型為 x 的文件,x 為下列字符之一:
b 塊設(shè)備文件
c 字符設(shè)備文件
d 目錄文件
p 命名管道(FIFO)
f 普通文件
l 符號(hào)鏈接文件(symbolic links)
s socket文件
-xtype x 與 -type 基本相同,但只查找符號(hào)鏈接文件。
以時(shí)間為條件查找
-amin n 查找n分鐘以前被訪問(wèn)過(guò)的所有文件。
-atime n 查找n天以前被訪問(wèn)過(guò)的所有文件。
-cmin n 查找n分鐘以前文件狀態(tài)被修改過(guò)的所有文件。
-ctime n 查找n天以前文件狀態(tài)被修改過(guò)的所有文件。
-mmin n 查找n分鐘以前文件內(nèi)容被修改過(guò)的所有文件。
-mtime n 查找n天以前文件內(nèi)容被修改過(guò)的所有文件。
-print:將搜索結(jié)果輸出到標(biāo)準(zhǔn)輸出。
一、Linux中find常見(jiàn)用法示例
·find ?? path??? -option??? [??? -print ]??? [ -exec??? -ok??? command ]??? {} \;#-print 將查找到的文件輸出到標(biāo)準(zhǔn)輸出#-exec??? command??? {} \;?????? -----將查到的文件執(zhí)行command操作,{} 和 \;之間有空格#-ok 和-exec相同,只不過(guò)在操作前要詢(xún)用戶(hù) ==================================================== -name??? filename?????????????? #查找名為filename的文件-perm???????????????????????? #按執(zhí)行權(quán)限來(lái)查找-user???? username????????????? #按文件屬主來(lái)查找-group groupname????????????? #按組來(lái)查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來(lái)查找-user???? username????????????? #按文件屬主來(lái)查找-group groupname????????????? #按組來(lái)查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前 -ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前 -nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? 找文件,-n指n天以?xún)?nèi),+n指n天以前 -ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前 -nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄-fstype?????????????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件-mount??????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)-follow?????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件-cpio???????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中-prune??????????????????????? #忽略某個(gè)目錄 ====================================================$find??? ~??? -name??? "*.txt"??? -print????? #在$HOME中查.txt文件并顯示$find??? .???? -name??? "*.txt"??? -print$find??? .???? -name??? "[A-Z]*"??? -pri26nbsp;???? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中-prune??????????????????????????????? #忽略某個(gè)目錄 $find??? .???? -name??? "[A-Z]*"??? -print??? #查以大寫(xiě)字母開(kāi)頭的文件$find??? /etc??? -name??? "host*"??? -print #查以host開(kāi)頭的文件$find??? .??? -name??? "[a-z][a-z][0--9][0--9].txt"???? -print??? #查以?xún)蓚€(gè)小寫(xiě)字母和兩個(gè)數(shù)字開(kāi)頭的txt文件$find .??? -perm??? 755??? -print$find??? .??? -perm -007??? -exec ls -l {} \;??? #查所有用戶(hù)都可讀寫(xiě)執(zhí)行的文件同-perm 777$find??? . -type d??? -print?? 打印目錄結(jié)構(gòu)$find??? .?? !??? -type??? d??? -print??打印非目錄文件 find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep無(wú)法遞歸搜索子目錄,故可以和find相結(jié)合使用。 在/usr/include 所有子目錄中的.h文件中找字串AF_INEF6$find??? .??? -type l??? -print $find??? .??? -size??? +1000000c??? -print???????? #查長(zhǎng)度大于1Mb的文件$find??? .??? -size??? 100c????????? -print??????? # 查長(zhǎng)度為100c的文件$find??? .??? -size??? +10??? -print?????????????? #查長(zhǎng)度超過(guò)期作廢10塊的文件(1塊=512字節(jié)) $cd /$find??? etc??? home??? apps???? -depth??? -print??? | cpio??? -ivcdC65536??? -o??? /dev/rmt0$find??? /etc -name "passwd*"??? -exec grep??? "cnscn"??? {}??? \;??? #看是否存在cnscn用戶(hù)$find . -name "yao*"??? | xargs file$find??? . -name "yao*"??? |??? xargs??? echo???? "" > /tmp/core.log$find??? . -name "yao*"??? | xargs??? chmod??? o-w ====================================================== find??? -name april*??????????????????????? 在當(dāng)前目錄下查找以april開(kāi)始的文件find??? -name??? april*??? fprint file????????? 在當(dāng)前目錄下查找以april開(kāi)始的文件,并把結(jié)果輸出到file中find??? -name ap* -o -name may*??? 查找以ap或may開(kāi)頭的文件find??? /mnt??? -name tom.txt??? -ftype vfat??? 在/mnt下查找名稱(chēng)為tom.txt且文件系統(tǒng)類(lèi)型為vfat的文件find??? /mnt??? -name t.txt ! -ftype vfat???? 在/mnt下查找名稱(chēng)為tom.txt且文件系統(tǒng)類(lèi)型不為vfat的文件find??? /tmp??? -name wa* -type l???????????? 在/tmp下查找名為wa開(kāi)頭且類(lèi)型為符號(hào)鏈接的文件find??? /home??? -mtime??? -2?????????????????? 在/home下查最近兩天內(nèi)改動(dòng)過(guò)的文件find /home???? -atime -1??????????????????? 查1天之內(nèi)被存取過(guò)的文件find /home -mmin???? +60??????????????????? 在/home下查60分鐘前改動(dòng)過(guò)的文件find /home??? -amin??? +30??????????????????? 查最近30分鐘前被存取過(guò)的文件find /home??? -newer??? tmp.txt?????????????? 在/home下查更新時(shí)間比tmp.txt近的文件或目錄find /home??? -anewer??? tmp.txt????????????? 在/home下查存取時(shí)間比tmp.txt近的文件或目錄find??? /home??? -used??? -2??????????????????? 列出文件或目錄被改動(dòng)過(guò)之后,在2日內(nèi)被存取過(guò)的文件或目錄find??? /home??? -user cnscn????????????????? 列出/home目錄內(nèi)屬于用戶(hù)cnscn的文件或目錄find??? /home??? -uid??? +501?????????????????? 列出/home目錄內(nèi)用戶(hù)的識(shí)別碼大于501的文件或目錄find??? /home??? -group??? cnscn??????????????? 列出/home內(nèi)組為cnscn的文件或目錄find??? /home??? -gid 501???????????????????? 列出/home內(nèi)組id為501的文件或目錄find??? /home??? -nouser????????????????????? 列出/home內(nèi)不屬于本地用戶(hù)的文件或目錄find??? /home??? -nogroup???????????????????? 列出/home內(nèi)不屬于本地組的文件或目錄find??? /home???? -name tmp.txt???? -maxdepth??? 4??? 列出/home內(nèi)的tmp.txt 查時(shí)深度最多為3層find??? /home??? -name tmp.txt??? -mindepth??? 3??? 從第2層開(kāi)始查find??? /home??? -empty?????????????????????? 查找大小為0的文件或空目錄find??? /home??? -size??? +512k???????????????? 查大于512k的文件find??? /home??? -size??? -512k???????????????? 查小于512k的文件find??? /home??? -links??? +2?????????????????? 查硬連接數(shù)大于2的文件或目錄find??? /home??? -perm??? 0700????????????????? 查權(quán)限為700的文件或目錄find??? /tmp??? -name tmp.txt??? -exec cat {} \;find??? /tmp??? -name??? tmp.txt??? -ok??? rm {} \; find???? /??? -amin???? -10???????? # 查找在系統(tǒng)中最后10分鐘訪問(wèn)的文件find???? /??? -atime??? -2?????????? # 查找在系統(tǒng)中最后48小時(shí)訪問(wèn)的文件find???? /??? -empty??????????????? # 查找在系統(tǒng)中為空的文件或者文件夾find???? /??? -group??? cat????????? # 查找在系統(tǒng)中屬于 groupcat的文件find???? /??? -mmin??? -5?????????? # 查找在系統(tǒng)中最后5分鐘里修改過(guò)的文件find???? /??? -mtime??? -1????????? #查找在系統(tǒng)中最后24小時(shí)里修改過(guò)的文件find???? /??? -nouser?????????????? #查找在系統(tǒng)中屬于作廢用戶(hù)的文件find???? /??? -user???? fred???????? #查找在系統(tǒng)中屬于FRED這個(gè)用戶(hù)的文件
1.命令格式:
2.命令功能:
用于在文件樹(shù)種查找文件,并作出相應(yīng)的處理
3.命令參數(shù):
pathname: find命令所查找的目錄路徑。例如用.來(lái)表示當(dāng)前目錄,用/來(lái)表示系統(tǒng)根目錄。 -print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。 -exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' {? } \;,注意{?? }和\;之間的空格。 -ok: 和-exec的作用相同,只不過(guò)以一種更為安全的模式來(lái)執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶(hù)來(lái)確定是否執(zhí)行。
4.命令選項(xiàng):
-name?? 按照文件名查找文件。-perm?? 按照文件權(quán)限來(lái)查找文件。-prune? 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。-user?? 按照文件屬主來(lái)查找文件。-group? 按照文件所屬的組來(lái)查找文件。-mtime -n +n? 按照文件的更改時(shí)間來(lái)查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以?xún)?nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。-nogroup? 查找無(wú)有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。-nouser?? 查找無(wú)有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。-newer file1 ! file2? 查找更改時(shí)間比文件file1新但比文件file2舊的文件。-type? 查找某一類(lèi)型的文件,諸如:b - 塊設(shè)備文件。d - 目錄。c - 字符設(shè)備文件。p - 管道文件。l - 符號(hào)鏈接文件。f - 普通文件。-size n:[c] 查找文件長(zhǎng)度為n塊的文件,帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)。-depth:在查找文件時(shí),首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找。-fstype:查找位于某一類(lèi)型文件系統(tǒng)中的文件,這些文件系統(tǒng)類(lèi)型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。-mount:在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。-follow:如果find命令遇到符號(hào)鏈接文件,就跟蹤至鏈接所指向的文件。-cpio:對(duì)匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中。
find :在需要添加通配符的時(shí)候需要將文件名雙引號(hào)勾選。
通配符有
??任意一個(gè)字符?
*?? 所有的
[]? 任意括號(hào)內(nèi)的字符
-name??? filename?????????????? #查找名為filename的文件-perm???????????????????????? #按執(zhí)行權(quán)限來(lái)查找-user???? username????????????? #按文件屬主來(lái)查找-group groupname????????????? #按組來(lái)查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來(lái)查找-user???? username????????????? #按文件屬主來(lái)查找-group groupname????????????? #按組來(lái)查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? 找文件,-n指n天以?xún)?nèi),+n指n天以前-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄-fstype?????????????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件-mount??????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)-follow?????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件-cpio???????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中-prune??????????????????????? #忽略某個(gè)目錄
舉報(bào)
Linux入門(mén)視頻教程,以通俗易懂的語(yǔ)言帶你感受linux之美
36 回答1.自行查找資料, 對(duì)grep命令進(jìn)行擴(kuò)充學(xué)習(xí).[自學(xué)]
20 回答2.設(shè)計(jì)一個(gè)與find命令相關(guān)的小項(xiàng)目.SZEZ
1 回答find命令
2 回答find命令-o -exec沒(méi)有正常執(zhí)行
27 回答3.是列舉所學(xué)的通配符,并解釋其含義?針對(duì)每一個(gè)通配符,書(shū)寫(xiě)一條find命令,并給出簡(jiǎn)要解釋。SZEZ
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2014-12-01
查當(dāng)前目錄下的所有普通文件
-------------------------------------------------------------------------------- # find . -type f -exec ls -l {} \;
-rw-r--r--????? 1 root?????? root????????? 34928 2003-02-25??? ./conf/httpd.conf
-rw-r--r--????? 1 root?????? root????????? 12959 2003-02-25??? ./conf/magic
-rw-r--r--????? 1 root?????? root??????????? 180 2003-02-25??? ./conf.d/README
查當(dāng)前目錄下的所有普通文件,并在- e x e c選項(xiàng)中使用ls -l命令將它們列出
=================================================
在/ l o g s目錄中查找更改時(shí)間在5日以前的文件并刪除它們:
$ find logs -type f -mtime +5 -exec??? -ok??? rm {} \;
=================================================
查詢(xún)當(dāng)天修改過(guò)的文件
[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -exec??? ls -l??? {} \;
=================================================
查詢(xún)文件并詢(xún)問(wèn)是否要顯示
[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -ok??? ls -l??? {} \;??
< ls ... ./classDB.inc.php > ? y
-rw-r--r--????? 1 cnscn????? cnscn???????? 13709??? 1月 12 12:22 ./classDB.inc.php
[root@book class]# find??? ./??? -mtime??? -1??? -type f??? -ok??? ls -l??? {} \;??
< ls ... ./classDB.inc.php > ? n
[root@book class]# =================================================
查詢(xún)并交給awk去處理
[root@book class]# who??? |??? awk??? '{print $1"\t"$2}'
cnscn???? pts/0 =================================================
awk---grep---sed [root@book class]# df??? -k |??? awk '{print $1}' |??? grep??? -v??? 'none' |??? sed??? s"/\/dev\///g"
文件系統(tǒng)
sda2
sda1
[root@book class]# df??? -k |??? awk '{print $1}' |??? grep??? -v??? 'none'
文件系統(tǒng)
/dev/sda2
/dev/sda1
1) 在/tmp中查找所有的*.h,并在這些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名 A) find??? /tmp??? -name??? "*.h"??? | xargs??? -n50??? grep SYSCALL_VECTOR
B) grep??? SYSCALL_VECTOR??? /tmp/*.h | cut???? -d':'??? -f1| uniq > filename
C) find??? /tmp??? -name "*.h"??? -exec grep "SYSCALL_VECTOR"??? {}??? \; -print
2)find / -name filename -exec rm -rf {} \;
???? find / -name filename -ok rm -rf {} \;
3)比如要查找磁盤(pán)中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;
4)將find出來(lái)的東西拷到另一個(gè)地方
find *.c -exec cp '{}' /tmp ';' 如果有特殊文件,可以用cpio,也可以用這樣的語(yǔ)法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37時(shí)更改過(guò)的文件
# A=`find ./ -name "*php"` |??? ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37
二、linux下find命令的用法
1. 基本用法:
????? find / -name 文件名 ???? find ver1.d ver2.d -name '*.c' -print??? 查找ver1.d,ver2.d *.c文件并打印 ???? find . -type d -print 從當(dāng)前目錄查找,僅查找目錄,找到后,打印路徑名??捎糜诖蛴∧夸浗Y(jié)構(gòu)。
2. 無(wú)錯(cuò)誤查找:
????? find / -name access_log 2 >/dev/null
3. 按尺寸查找:
????? find / -size 1500c (查找1,500字節(jié)大小的文件,c表示字節(jié))
????? find / -size +1500c (查找大于1,500字節(jié)大小的文件,+表示大于)????
????? find / -size +1500c (查找小于1,500字節(jié)大小的文件,-表示小于)????
4. 按時(shí)間:
????? find / -amin n 最后n分鐘
????? find / -atime n 最后n天
????? find / -cmin n 最后n分鐘改變狀態(tài)
????? find / -ctime n 最后n天改變狀態(tài)
5. 其它:
????? find / -empty 空白文件、空白文件夾、沒(méi)有子目錄的文件夾
????? find / -false 查找系統(tǒng)中總是錯(cuò)誤的文件
????? find / -fstype type 找存在于指定文件系統(tǒng)的文件,如type為ext2
????? find / -gid n 組id為n的文件
????? find / -group gname 組名為gname的文件
????? find / -depth n 在某層指定目錄中優(yōu)先查找文件內(nèi)容
????? find / -maxdepth levels 在某個(gè)層次目錄中按遞減方式查找
6. 邏輯
????? -and 條件與 -or 條件或
7. 查找字符串
????? find . -name '*.html' -exec grep 'mailto:'{}
2014-12-01
?find命令
???? 功能:在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作。此命令提供了相當(dāng)多的查找條件,功能很強(qiáng)大。
???? 語(yǔ)法:find 起始目錄 尋找條件 操作
???? 說(shuō)明:find命令從指定的起始目錄開(kāi)始,遞歸地搜索其各個(gè)子目錄,查找滿足尋找條件的文件并對(duì)之采取相關(guān)的操作。
???? 該命令提供的尋找條件可以是一個(gè)用邏輯運(yùn)算符not、and、or組成的復(fù)合條件。邏輯運(yùn)算符and、or、not的含義為:
???? (1)and:邏輯與,在命令中用“-a”表示,是系統(tǒng)缺省的選項(xiàng),表示只有當(dāng)所給的條件都滿足時(shí),尋找條件才算滿足。例如:
???? $ find –name ’tmp’ –xtype c -user ’inin’
???? 該命令尋找三個(gè)給定條件都滿足的所有文件。
???? ?。?)or:邏輯或,在命令中用“-o”表示。該運(yùn)算符表示只要所給的條件中有一個(gè)滿足時(shí),尋找條件就算滿足。例如:
???? $ find –name ’tmp’ –o –name ’mina*’
????
???? 該命令查詢(xún)文件名為’tmp’或是匹配’mina*’的所有文件。
???? ?。?)not:邏輯非,在命令中用“!”表示。該運(yùn)算符表示查找不滿足所給條件的文件。例如:
???? $ find ! –name ’tmp’
???? 該命令查詢(xún)文件名不是’tmp’的所有文件。
???? 需要說(shuō)明的是:當(dāng)使用很多的邏輯選項(xiàng)時(shí),可以用括號(hào)把這些選項(xiàng)括起來(lái)。為了避免Shell本身對(duì)括號(hào)引起誤解,在話號(hào)前需要加轉(zhuǎn)義字符“”來(lái)去除括號(hào)的意義。
???? 例:$ find (–name ’tmp’ –xtype c -user ’inin’ )
???? 尋找條件有以下選項(xiàng):
???? 首先,下列各個(gè)選項(xiàng)中的n值可以有三種輸入方式,假設(shè)n為20,則:
???? +20 表示20以后(21,22,23等)
???? -20 表示20以前(19,18,17等)
???? 20 表示正好是20
???? 1. 以名稱(chēng)和文件屬性查找。
???? - name ’字串’ 查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
???? - lname ’字串’ 查找文件名匹配所給字串的所有符號(hào)鏈接文件,字串內(nèi)可用通配符*、?、[ ]。
???? -gid n 查找屬于ID號(hào)為n的用戶(hù)組的所有文件。
???? -uid n 查找屬于ID號(hào)為n的用戶(hù)的所有文件。
???? -group ’字串’ 查找屬于用戶(hù)組名為所給字串的所有的文件。
???? -user ’字串’ 查找屬于用戶(hù)名為所給字串的所有的文件。
???? -nogroup 查找無(wú)有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。
???? -nouser 查找無(wú)有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。
???? -newer file1 ! file2 查找更改時(shí)間比文件f i l e 1新但比文件f i l e 2舊的文件。
???? -empty 查找大小為0的目錄或文件。
???? -path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
???? -perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。
???? -size n[bckw] 查找指定文件大小的文件,n后面的字符表示單位,缺省為b,代表512字節(jié)的塊。
???? -type x 查找類(lèi)型為x的文件,x為下列字符之一:
???? b 塊設(shè)備文件
???? c 字符設(shè)備文件
???? d 目錄文件
???? p 命名管道(FIFO)
???? f 普通文件
???? l 符號(hào)鏈接文件(symbolic links)
???? s socket文件
???? -xtype x 與-type基本相同,但只查找符號(hào)鏈接文件。
???? 2. 以時(shí)間為條件查找
???? - amin n 查找n分鐘以前被訪問(wèn)過(guò)的所有文件。
???? - atime n 查找n天以前被訪問(wèn)過(guò)的所有文件。
???? - cmin n 查找n分鐘以前文件狀態(tài)被修改過(guò)的所有文件。
???? - ctime n 查找n天以前文件狀態(tài)被修改過(guò)的所有文件。
???? - mmin n 查找n分鐘以前文件內(nèi)容被修改過(guò)的所有文件。
???? - mtime n 查找n天以前文件內(nèi)容被修改過(guò)的所有文件。
???? 3. 可執(zhí)行的操作
???? - exec 命令名稱(chēng) {} \; 對(duì)符合條件的文件執(zhí)行所給的unix 命令,而不詢(xún)問(wèn)用戶(hù)是否需要執(zhí)行該命令。{}表示命令的參數(shù)即為所找到的文件,命令的末尾必須以“ \;”結(jié)束,"{}"和"\;"之間必須有一個(gè)空格。
???? - ok 命令名稱(chēng) {} \; 對(duì)符合條件的文件執(zhí)行所給的Linux 命令,與exec不同的是,它會(huì)詢(xún)問(wèn)用戶(hù)是否需要執(zhí)行該命令。
???? - ls 詳細(xì)列出所找到的所有文件。
???? - fprintf 文件名 將找到的文件名寫(xiě)入指定文件。
???? - print 在標(biāo)準(zhǔn)輸出設(shè)備上顯示查找出的文件名。
???? - printf 格式 格式的寫(xiě)法請(qǐng)參考有關(guān)C語(yǔ)言的書(shū)。
????使用name選項(xiàng)
????文件名選項(xiàng)是f i n d命令最常用的選項(xiàng),要么單獨(dú)使用該選項(xiàng),要么和其他選項(xiàng)一起使用。
????可以使用某種文件名模式來(lái)匹配文件,記住要用引號(hào)將文件名模式引起來(lái)。
????不管當(dāng)前路徑是什么,如果想要在自己的根目錄$ H O M E中查找文件名符合* . t x t的文件,
????使用~作為' p a t h n a m e參數(shù),波浪號(hào)~代表了你的$ H O M E目錄。
????$ find ~ -name "*.txt" -print
????想要在當(dāng)前目錄及子目錄中查找所有的' * . t x t'文件,可以用:
????$ find . -name "*.txt" -print
????想要的當(dāng)前目錄及子目錄中查找文件名以一個(gè)大寫(xiě)字母開(kāi)頭的文件,可以用:
????$ find . -name "[A-Z]*" -print
????想要在/ e t c目錄中查找文件名以h o s t開(kāi)頭的文件,可以用:
????$ find /etc -name "host*" -print
????想要查找$ H O M E目錄中的文件,可以用:
????$ find ~ -name "*" -print 或find . -print
????要想讓系統(tǒng)高負(fù)荷運(yùn)行,就從根目錄開(kāi)始查找所有的文件。如果希望在系統(tǒng)管理員那里
????保留一個(gè)好印象的話,最好在這么做之前考慮清楚!
????$ find / -name "*" -print
????如果想在當(dāng)前目錄查找文件名以?xún)蓚€(gè)小寫(xiě)字母開(kāi)頭,跟著是兩個(gè)數(shù)字,最后是* . t x t的文
????件,下面的命令就能夠返回名為a x 3 7 . t x t的文件:
????$ find . -name "[a-z][a-z][0--9][0--9].txt" -print
????使用perm選項(xiàng)
????如果希望按照文件權(quán)限模式來(lái)查找文件的話,可以采用- p e r m選項(xiàng)。你可能需要找到所有
????用戶(hù)都具有執(zhí)行權(quán)限的文件,或是希望查看某個(gè)用戶(hù)目錄下的文件權(quán)限類(lèi)型。在使用這一選
????項(xiàng)的時(shí)候,最好使用八進(jìn)制的權(quán)限表示法。
????為了在當(dāng)前目錄下查找文件權(quán)限位為7 5 5的文件,即文件屬主可以讀、寫(xiě)、執(zhí)行,其他用
????戶(hù)可以讀、執(zhí)行的文件,可以用:
????$ find . -perm 755 -print
????如果希望在當(dāng)前目錄下查找所有用戶(hù)都可讀、寫(xiě)、執(zhí)行的文件(要小心這種情況),我們
????可以使用f i n d命令的- p e r m選項(xiàng)。在八進(jìn)制數(shù)字前面要加一個(gè)橫杠-。在下面的命令中- p e r m代
????表按照文件權(quán)限查找,而' 0 0 7'和你在c h m o d命令的絕對(duì)模式中所采用的表示法完全相同。
????$ find . -perm -007 -print
????忽略某個(gè)目錄
????如果在查找文件時(shí)希望忽略某個(gè)目錄,因?yàn)槟阒滥莻€(gè)目錄中沒(méi)有你所要查找的文件,
????那么可以使用- p r u n e選項(xiàng)來(lái)指出需要忽略的目錄。在使用- p r u n e選項(xiàng)時(shí)要當(dāng)心,因?yàn)槿绻阃?/p>
????時(shí)使用了- d e p t h選項(xiàng),那么- p r u n e選項(xiàng)就會(huì)被f i n d命令忽略。
????如果希望在/ a p p s目錄下查找文件,但不希望在/ a p p s / b i n目錄下查找,可以用:
????$ find /apps -name "/apps/bin" -prune -o -print
????使用user和nouser選項(xiàng)
????如果希望按照文件屬主查找文件,可以給出相應(yīng)的用戶(hù)名。例如,在$ H O M E目錄中查找
????文件屬主為d a v e的文件,可以用:
????$ find ~ -user dave -print
????在/ e t c目錄下查找文件屬主為u u c p的文件:
????$ find /etc -user uucp -print
????為了查找屬主帳戶(hù)已經(jīng)被刪除的文件,可以使用- n o u s e r選項(xiàng)。這樣就能夠找到那些屬主
????在/ e t c / p a s s w d文件中沒(méi)有有效帳戶(hù)的文件。在使用- n o u s e r選項(xiàng)時(shí),不必給出用戶(hù)名; f i n d命令
????能夠?yàn)槟阃瓿上鄳?yīng)的工作。例如,希望在/ h o m e目錄下查找所有的這類(lèi)文件,可以用:
????$ find /home -nouser -print
????使用group和nogroup選項(xiàng)
????就像u s e r和n o u s e r選項(xiàng)一樣,針對(duì)文件所屬于的用戶(hù)組, f i n d命令也具有同樣的選項(xiàng),為
????了在/ a p p s目錄下查找屬于a c c t s用戶(hù)組的文件,可以用:
????$ find /apps -group accts -print
????要查找沒(méi)有有效所屬用戶(hù)組的所有文件,可以使用n o g r o u p選項(xiàng)。下面的f i n d命令從文件
????系統(tǒng)的根目錄處查找這樣的文件
????$ fine/-nogroup-print
????按照更改時(shí)間查找文件
????如果希望按照更改時(shí)間來(lái)查找文件,可以使用m t i m e選項(xiàng)。如果系統(tǒng)突然沒(méi)有可用空間了,
????很有可能某一個(gè)文件的長(zhǎng)度在此期間增長(zhǎng)迅速,這時(shí)就可以用m t i m e選項(xiàng)來(lái)查找這樣的文件。
????用減號(hào)-來(lái)限定更改時(shí)間在距今n日以?xún)?nèi)的文件,而用加號(hào)+來(lái)限定更改時(shí)間在距今n日以前的
????文件。
????希望在系統(tǒng)根目錄下查找更改時(shí)間在5日以?xún)?nèi)的文件,可以用:
????$ find / -mtime -5 -print
????為了在/ v a r / a d m目錄下查找更改時(shí)間在3日以前的文件,可以用:
????$ find /var/adm -mtime +3 -print
????查找比某個(gè)文件新或舊的文件
????如果希望查找更改時(shí)間比某個(gè)文件新但比另一個(gè)文件舊的所有文件,可以使用- n e w e r選
????項(xiàng)。它的一般形式為:
????newest_file_name ! oldest_file_name
????其中,!是邏輯非符號(hào)。
????這里有兩個(gè)文件,它們的更改時(shí)間大約相差兩天。
????下面給出的f i n d命令能夠查找更改時(shí)間比文件a g e . a w k新但比文件b e l t s . a w k舊的文件:
????如果想使用f i n d命令的這一選項(xiàng)來(lái)查找更改時(shí)間在兩個(gè)小時(shí)以?xún)?nèi)的文件,除非有一個(gè)現(xiàn)成
????的文件其更改時(shí)間恰好在兩個(gè)小時(shí)以前,否則就沒(méi)有可用來(lái)比較更改時(shí)間的文件。為了解決
????這一問(wèn)題,可以首先創(chuàng)建一個(gè)文件并將其日期和時(shí)間戳設(shè)置為所需要的時(shí)間。這可以用t o u c h
????命令來(lái)實(shí)現(xiàn)。
????假設(shè)現(xiàn)在的時(shí)間是2 3 : 4 0,希望查找更改時(shí)間在兩個(gè)小時(shí)以?xún)?nèi)的文件,可以首先創(chuàng)建這樣
????一個(gè)文件:
????一個(gè)符合要求的文件已經(jīng)被創(chuàng)建;這里我們假設(shè)今天是五月四日,而該文件的更改時(shí)間
????是2 1 : 4 0,比現(xiàn)在剛好早兩個(gè)小時(shí)。
????現(xiàn)在我們就可以使用f i n d命令的- n e w e r選項(xiàng)在當(dāng)前目錄下查找所有更改時(shí)間在兩個(gè)小時(shí)以
????內(nèi)的文件:
????$ find . -newer dstamp -print
????使用type選項(xiàng)
????U N I X或L I N U X系統(tǒng)中有若干種不同的文件類(lèi)型,這部分內(nèi)容我們?cè)谇懊娴恼鹿?jié)已經(jīng)做了
????介紹,這里就不再贅述。如果要在/ e t c目錄下查找所有的目錄,可以用:
????$ find /etc -type d -print
????為了在當(dāng)前目錄下查找除目錄以外的所有類(lèi)型的文件,可以用:
????$ find . ! -type d -print
????為了在/ e t c目錄下查找所有的符號(hào)鏈接文件,可以用:
????$ find /etc -type l -print
????使用size選項(xiàng)
????可以按照文件長(zhǎng)度來(lái)查找文件,這里所指的文件長(zhǎng)度既可以用塊( b l o c k)來(lái)計(jì)量,也可
????以用字節(jié)來(lái)計(jì)量。以字節(jié)計(jì)量文件長(zhǎng)度的表達(dá)形式為N c;以塊計(jì)量文件長(zhǎng)度只用數(shù)字表示即
????可。
????就我個(gè)人而言,我總是使用以字節(jié)計(jì)的方式,在按照文件長(zhǎng)度查找文件時(shí),大多數(shù)人都
????喜歡使用這種以字節(jié)表示的文件長(zhǎng)度,而不用塊的數(shù)目來(lái)表示,除非是在查看文件系統(tǒng)的大
????小,因?yàn)檫@時(shí)使用塊來(lái)計(jì)量更容易轉(zhuǎn)換。
????為了在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件,可以用:
????$ find . -size +1000000c -print
????為了在/ h o m e / a p a c h e目錄下查找文件長(zhǎng)度恰好為1 0 0字節(jié)的文件,可以用:
????$ find /home/apache -size 100c -print
????為了在當(dāng)前目錄下查找長(zhǎng)度超過(guò)1 0塊的文件(一塊等于5 1 2字節(jié)),可以用:
????$ find . -size +10 -print
2014-12-01
-user ’字串’ 查找屬于用戶(hù)名為所給字串的所有的文件。
-empty 查找大小為 0的目錄或文件。
-path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
-perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示單位,缺省為 b,代表512字節(jié)的塊。
-type x 查找類(lèi)型為 x 的文件,x 為下列字符之一
2014-12-01
06_szez?的筆記
文件搜索命令find
find [搜索范圍] [搜索條件]
* 匹配任意內(nèi)容
匹配任意一個(gè)字符
[] 匹配任意一個(gè)中括號(hào)內(nèi)的字符
-10 10天內(nèi)修改的文件
10 10天當(dāng)天修改的文件
+10 10天前修改的文件
atime 文件訪問(wèn)時(shí)間
ctime 改變?cè)L問(wèn)時(shí)間
mtime 修改文件內(nèi)容
find . -size 25k(查找文件大小是25KB的文件)
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件
find . -inum 262422查找i節(jié)點(diǎn)是262422的文件
網(wǎng)絡(luò)資源
一、find 命令格式
1、find命令的一般形式為
find pathname -options [-print -exec -ok ...]
2、find命令的參數(shù)
pathname: find命令所查找的目錄路徑。例如用.來(lái)表示當(dāng)前目錄用/來(lái)表示系統(tǒng)根目錄。
-print find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為"command { } \; "注意"{ }"和“\;”之間的空格。
-ok 和-exec的作用相同只不過(guò)以一種更為安全的模式來(lái)執(zhí)行該參數(shù)所給出的shell命令在執(zhí)行每一個(gè)命令之前都會(huì)給出提示讓用戶(hù)來(lái)確定是否執(zhí)行。
3、find命令選項(xiàng)
-name?按照文件名查找文件。
-perm?按照文件權(quán)限來(lái)查找文件。
-prune?使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找如果同時(shí)使用-depth選項(xiàng)那么-prune將被find命令忽略。
-user?按照文件屬主來(lái)查找文件。
-group?按照文件所屬的組來(lái)查找文件。
-mtime -n +n?按照文件的更改時(shí)間來(lái)查找文件 - n表示文件更改時(shí)間距現(xiàn)在n天以?xún)?nèi)+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng)但它們都和-m time選項(xiàng)。
-nogroup?查找無(wú)有效所屬組的文件即該文件所屬的組在/etc/groups中不存在。
-nouser?查找無(wú)有效屬主的文件即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 ?查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type?查找某一類(lèi)型的文件諸如b - 塊設(shè)備文件。d - 目錄。c - 字符設(shè)備文件。p - 管道文件。l - 符號(hào)鏈接文件。f - 普通文件。
-size n[c] 查找文件長(zhǎng)度為n塊的文件帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)。
-depth在查找文件時(shí)首先查找當(dāng)前目錄中的文件然后再在其子目錄中查找。
-fstype查找位于某一類(lèi)型文件系統(tǒng)中的文件這些文件系統(tǒng)類(lèi)型通常可以在配置文件/etc/fstab中找到該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。
-mount在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。
-follow如果find命令遇到符號(hào)鏈接文件就跟蹤至鏈接所指向的文件。
-cpio對(duì)匹配的文件使用cpio命令將這些文件備份到磁帶設(shè)備中。
另外,下面三個(gè)的區(qū)別:
? ?-amin n?查找系統(tǒng)中最后N分鐘訪問(wèn)的文件
-atime n?查找系統(tǒng)中最后n*24小時(shí)訪問(wèn)的文件
-cmin n?查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件
-ctime n?查找系統(tǒng)中最后n*24小時(shí)被改變文件狀態(tài)的文件
? ?-mmin n?查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件
-mtime n?查找系統(tǒng)中最后n*24小時(shí)被改變文件數(shù)據(jù)的文件
4、使用exec或ok來(lái)執(zhí)行shell命令
使用find時(shí)只要把想要的操作寫(xiě)在一個(gè)文件里就可以用exec來(lái)配合find查找很方便的
在有些操作系統(tǒng)中只允許-exec選項(xiàng)執(zhí)行諸如l s或ls -l這樣的命令。大多數(shù)用戶(hù)使用這一選項(xiàng)是為了查找舊文件并刪除它們。建議在真正執(zhí)行rm命令刪除文件之前最好先用ls命令看一下確認(rèn)它們是所要?jiǎng)h除的文件。
exec選項(xiàng)后面跟隨著所要執(zhí)行的命令或腳本然后是一對(duì)兒{ }一個(gè)空格和一個(gè)最后是一個(gè)分號(hào)。為了使用exec選項(xiàng)必須要同時(shí)使用print選項(xiàng)。如果驗(yàn)證一下find命令會(huì)發(fā)現(xiàn)該命令只輸出從當(dāng)前路徑起的相對(duì)路徑及文件名。
例如為了用ls -l命令列出所匹配到的文件可以把ls -l命令放在find命令的-exec選項(xiàng)中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中find命令匹配到了當(dāng)前目錄下的所有普通文件并在-exec選項(xiàng)中使用ls -l命令將它們列出。
在/logs目錄中查找更改時(shí)間在5日以前的文件并刪除它們
$ find logs -type f -mtime +5 -exec rm { } \;
記住在shell中用任何方式刪除文件之前應(yīng)當(dāng)先查看相應(yīng)的文件一定要小心當(dāng)使用諸如mv或rm命令時(shí)可以使用-exec選項(xiàng)的安全模式。它將在對(duì)每個(gè)匹配到的文件進(jìn)行操作之前提示你。
在下面的例子中 find命令在當(dāng)前目錄中查找所有文件名以.LOG結(jié)尾、更改時(shí)間在5日以上的文件并刪除它們只不過(guò)在刪除之前先給出提示。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y鍵刪除文件按n鍵不刪除。
任何形式的命令都可以在-exec選項(xiàng)中使用。
在下面的例子中我們使用grep命令。find命令首先匹配所有文件名為“ passwd*”的文件例如passwd、passwd.old、passwd.bak然后執(zhí)行g(shù)rep命令看看在這些文件中是否存在一個(gè)sam用戶(hù)。
# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash
二、find命令的例子
1、查找當(dāng)前用戶(hù)主目錄下的所有文件下面兩種方法都可以使用
$ find $HOME -print
$ find ~ -print
2、讓當(dāng)前目錄中文件屬主具有讀、寫(xiě)權(quán)限并且文件所屬組的用戶(hù)和其他用戶(hù)具有讀權(quán)限的文件
$ find . -type f -perm 644 -exec ls -l { } \;
3、為了查找系統(tǒng)中所有文件長(zhǎng)度為0的普通文件并列出它們的完整路徑
$ find / -type f -size 0 -exec ls -l { } \;
4、查找/var/logs目錄中更改時(shí)間在7日以前的普通文件并在刪除之前詢(xún)問(wèn)它們
$ find /var/logs -type f -mtime +7 -ok rm { } \;
5、為了查找系統(tǒng)中所有屬于root組的文件
$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1
6、find命令將刪除當(dāng)目錄中訪問(wèn)時(shí)間在7日以來(lái)、含有數(shù)字后綴的admin.log文件。
該命令只檢查三位數(shù)字所以相應(yīng)文件的后綴不要超過(guò)999。先建幾個(gè)admin.log*的文件 才能使用下面這個(gè)命令
$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n
7、為了查找當(dāng)前文件系統(tǒng)中的所有目錄并排序
$ find . -type d | sort
8、為了查找系統(tǒng)中所有的rmt磁帶設(shè)備
$ find /dev/rmt -print
三、find 命令的參數(shù)
下面是find一些常用參數(shù)的例子有用到的時(shí)候查查就行了像上面前幾個(gè)貼子都用到了其中的的一些參數(shù)也可以用man或查看論壇里其它貼子有find的命令手冊(cè)
1、使用name選項(xiàng)
文件名選項(xiàng)是find命令最常用的選項(xiàng)要么單獨(dú)使用該選項(xiàng)要么和其他選項(xiàng)一起使用。
可以使用某種文件名模式來(lái)匹配文件記住要用引號(hào)將文件名模式引起來(lái)。
不管當(dāng)前路徑是什么如果想要在自己的根目錄$HOME中查找文件名符合*.txt的文件使用~作為 'pathname'參數(shù)波浪號(hào)~代表了你的$HOME目錄。
$ find ~ -name "*.txt" -print
想要在當(dāng)前目錄及子目錄中查找所有的‘ *.txt’文件可以用
$ find . -name "*.txt" -print
想要的當(dāng)前目錄及子目錄中查找文件名以一個(gè)大寫(xiě)字母開(kāi)頭的文件可以用
$ find . -name "[A-Z]*" -print
想要在/etc目錄中查找文件名以host開(kāi)頭的文件可以用
$ find /etc -name "host*" -print
想要查找$HOME目錄中的文件可以用
$ find ~ -name "*" -print 或find . -print
要想讓系統(tǒng)高負(fù)荷運(yùn)行就從根目錄開(kāi)始查找所有的文件。
$ find / -name "*" -print
如果想在當(dāng)前目錄查找文件名以?xún)蓚€(gè)小寫(xiě)字母開(kāi)頭跟著是兩個(gè)數(shù)字最后是.txt的文件下面的命令就能夠返回名為ax37.txt的文件
$find . -name "[a-z][a-z][0--9][0--9].txt" -print
2、用perm選項(xiàng)
按照文件權(quán)限模式用-perm選項(xiàng),按文件權(quán)限模式來(lái)查找文件的話。最好使用八進(jìn)制的權(quán)限表示法。
如在當(dāng)前目錄下查找文件權(quán)限位為755的文件即文件屬主可以讀、寫(xiě)、執(zhí)行其他用戶(hù)可以讀、執(zhí)行的文件可以用
$ find . -perm 755 -print
還有一種表達(dá)方法在八進(jìn)制數(shù)字前面要加一個(gè)橫杠-表示都匹配如-007就相當(dāng)于777-006相當(dāng)于666
# ls -l
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp
# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./temp
-perm mode:文件許可正好符合mode
-perm +mode:文件許可部分符合mode
-perm -mode: 文件許可完全符合mode
3、忽略某個(gè)目錄
如果在查找文件時(shí)希望忽略某個(gè)目錄因?yàn)槟阒滥莻€(gè)目錄中沒(méi)有你所要查找的文件那么可以使用-prune選項(xiàng)來(lái)指出需要忽略的目錄。在使用-prune選項(xiàng)時(shí)要當(dāng)心因?yàn)槿绻阃瑫r(shí)使用了-depth選項(xiàng)那么-prune選項(xiàng)就會(huì)被find命令忽略。
如果希望在/apps目錄下查找文件但不希望在/apps/bin目錄下查找可以用
$ find /apps -path "/apps/bin" -prune -o -print
4、使用find查找文件的時(shí)候怎么避開(kāi)某個(gè)文件目錄
比如要在/usr/sam目錄下查找不在dir1子目錄之內(nèi)的所有文件
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在路徑列表的后面的是表達(dá)式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的簡(jiǎn)寫(xiě)表達(dá)式按順序求值, -a 和 -o 都是短路求值與 shell 的 && 和 || 類(lèi)似如果 -path "/usr/sam" 為真則求值 -prune , -prune 返回真與邏輯表達(dá)式為真否則不求值 -prune與邏輯表達(dá)式為假。如果 -path "/usr/sam" -a -prune 為假則求值 -print -print返回真或邏輯表達(dá)式為真否則不求值 -print或邏輯表達(dá)式為真。
這個(gè)表達(dá)式組合特例可以用偽碼寫(xiě)為
if -path "/usr/sam" then
? ? ? ? ? ?-prune
else
? ? ? ? ? ?-print
避開(kāi)多個(gè)文件夾
find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
圓括號(hào)表示表達(dá)式的結(jié)合。
\ 表示引用即指示 shell 不對(duì)后面的字符作特殊解釋而留給 find 命令去解釋其意義。
查找某一確定文件-name等選項(xiàng)加在-o 之后
#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print
5、使用user和nouser選項(xiàng)
按文件屬主查找文件如在$HOME目錄中查找文件屬主為sam的文件可以用
$ find ~ -user sam -print
在/etc目錄下查找文件屬主為uucp的文件
$ find /etc -user uucp -print
為了查找屬主帳戶(hù)已經(jīng)被刪除的文件可以使用-nouser選項(xiàng)。這樣就能夠找到那些屬主在/etc/passwd文件中沒(méi)有有效帳戶(hù)的文件。在使用-nouser選項(xiàng)時(shí)不必給出用戶(hù)名 find命令能夠?yàn)槟阃瓿上鄳?yīng)的工作。
例如希望在/home目錄下查找所有的這類(lèi)文件可以用
$ find /home -nouser -print
6、使用group和nogroup選項(xiàng)
就像user和nouser選項(xiàng)一樣針對(duì)文件所屬于的用戶(hù)組 find命令也具有同樣的選項(xiàng)為了在/apps目錄下查找屬于gem用戶(hù)組的文件可以用
$ find /apps -group gem -print
要查找沒(méi)有有效所屬用戶(hù)組的所有文件可以使用nogroup選項(xiàng)。下面的find命令從文件系統(tǒng)的根目錄處查找這樣的文件
$ find / -nogroup-print
7、按照更改時(shí)間或訪問(wèn)時(shí)間等查找文件
如果希望按照更改時(shí)間來(lái)查找文件可以使用mtime,atime或ctime選項(xiàng)。如果系統(tǒng)突然沒(méi)有可用空間了很有可能某一個(gè)文件的長(zhǎng)度在此期間增長(zhǎng)迅速這時(shí)就可以用mtime選項(xiàng)來(lái)查找這樣的文件。
用減號(hào)-來(lái)限定更改時(shí)間在距今n日以?xún)?nèi)的文件而用加號(hào)+來(lái)限定更改時(shí)間在距今n日以前的文件。
希望在系統(tǒng)根目錄下查找更改時(shí)間在5日以?xún)?nèi)的文件可以用
$ find / -mtime -5 -print
為了在/var/adm目錄下查找更改時(shí)間在3日以前的文件可以用
$ find /var/adm -mtime +3 -print
8、查找比某個(gè)文件新或舊的文件
如果希望查找更改時(shí)間比某個(gè)文件新但比另一個(gè)文件舊的所有文件可以使用-newer選項(xiàng)。它的一般形式為
newest_file_name ! oldest_file_name
其中是邏輯非符號(hào)。
查找更改時(shí)間比文件sam新但比文件temp舊的文件
例有兩個(gè)文件
-rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp
# find -newer httpd1.conf ! -newer temp -ls
1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf
1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp
1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel
查找更改時(shí)間在比temp文件新的文件
$ find . -newer temp -print
9、使用type選項(xiàng)
在/etc目錄下查找所有的目錄可以用
$ find /etc -type d -print
在當(dāng)前目錄下查找除目錄以外的所有類(lèi)型的文件可以用
$ find . ! -type d -print
在/etc目錄下查找所有的符號(hào)鏈接文件可以用
$ find /etc -type l -print
10、使用size選項(xiàng)
可以按照文件長(zhǎng)度來(lái)查找文件這里所指的文件長(zhǎng)度既可以用塊block來(lái)計(jì)量也可以用字節(jié)來(lái)計(jì)量。以字節(jié)計(jì)量文件長(zhǎng)度的表達(dá)形式為N c以塊計(jì)量文件長(zhǎng)度只用數(shù)字表示即可。
在按照文件長(zhǎng)度查找文件時(shí)一般使用這種以字節(jié)表示的文件長(zhǎng)度在查看文件系統(tǒng)的大小因?yàn)檫@時(shí)使用塊來(lái)計(jì)量更容易轉(zhuǎn)換。
在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件
$ find . -size +1000000c -print
在/home/apache目錄下查找文件長(zhǎng)度恰好為100字節(jié)的文件
$ find /home/apache -size 100c -print
在當(dāng)前目錄下查找長(zhǎng)度超過(guò)10塊的文件一塊等于512字節(jié)
$ find . -size +10 -print
11、使用depth選項(xiàng)
在使用find命令時(shí)可能希望先匹配所有的文件再在子目錄中查找。使用depth選項(xiàng)就可以使find命令這樣做。這樣做的一個(gè)原因就是當(dāng)在使用find命令向磁帶上備份文件系統(tǒng)時(shí)希望首先備份所有的文件其次再備份子目錄中的文件。
在下面的例子中 find命令從文件系統(tǒng)的根目錄開(kāi)始查找一個(gè)名為CON.FILE的文件。
它將首先匹配所有的文件然后再進(jìn)入子目錄中查找。
$ find / -name "CON.FILE" -depth -print
12、使用mount選項(xiàng)
在當(dāng)前的文件系統(tǒng)中查找文件不進(jìn)入其他文件系統(tǒng)可以使用find命令的mount選項(xiàng)。
從當(dāng)前目錄開(kāi)始查找位于本文件系統(tǒng)中文件名以XC結(jié)尾的文件
$ find . -name "*.XC" -mount -print
norma Netp< @g: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">在當(dāng)前目錄下查找文件長(zhǎng)度大于1 M字節(jié)的文件$ find . -size +1000000c -print在/home/apache目錄下查找文件長(zhǎng)度恰好為100字節(jié)的文件$ find /home/apache -size 100c -print在當(dāng)前目錄下查找長(zhǎng)度超過(guò)10塊的文件一塊等于512字節(jié)$ find . -size +10 -print11、使用depth選項(xiàng)在使用find命令時(shí)可能希望先匹配所有的文件再在子目錄中查找。使用depth選項(xiàng)就可以使find命令這樣做。這樣做的一個(gè)原因就是當(dāng)在使用find命令向磁帶上備份文件系統(tǒng)時(shí)希望首先備份所有的文件其次再備份子目錄中的文件。在下面的例子中 find命令從文件系統(tǒng)的根目錄開(kāi)始查找一個(gè)名為CON.FILE的文件。它將首先匹配所有的文件然后再進(jìn)入子目錄中查找。$ find / -name "CON.FILE" -depth -print12、使用mount選項(xiàng)在當(dāng)前的文件系統(tǒng)中查找文件不進(jìn)入其他文件系統(tǒng)可以使用find命令的mount選項(xiàng)。從當(dāng)前目錄開(kāi)始查找位于本文件系統(tǒng)中文件名以XC結(jié)尾的文件$ find . -name "*.XC" -mount -print
2014-12-01
-user username?? ??? ?#按文件屬主來(lái)查找
-group groupname?? ?#按組來(lái)查找
-mtime -n +n?? ??? ?#按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-atime -n +n?? ??? ?#按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm #按執(zhí)行權(quán)限來(lái)查找
-ctime -n +n?? ??? ?#按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-nogroup?? ??? ?#查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?? ??? ??? ?#查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存在
-newer f1 !f2?? ??? ?#查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件
-type b/d/c/p/l/f?? ?#查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
$find . -type d -print #在當(dāng)前目錄下查找目錄文件
$find . ! -type d -print #在當(dāng)前目錄下查找非目錄文件
$find . -type l -print #在當(dāng)前目錄下查找符號(hào)鏈接文件
-size n[c]?? ??? ?#查長(zhǎng)度為n塊[或n字節(jié)]的文件
$find . -size +1000000c -print #在當(dāng)前目錄下查長(zhǎng)度大于1Mb的文件
$find . -size 100c -print #在當(dāng)前目錄下查長(zhǎng)度為100c的文件
$find . -size +10 -print #在當(dāng)前目錄下查長(zhǎng)度超過(guò)10塊的文件(1塊=512字節(jié))
-depth?? ??? ??? ?#使查找在進(jìn)入子目錄前先行查找完本目錄(廣度優(yōu)先)
-mount?? ??? ??? ?#查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
-follow?? ??? ??? ?#如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
-cpio?? ??? ??? ?#對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中
-prune?? ??? ??? ?#忽略某個(gè)目錄
2014-12-01
find \(–name ’tmp’ –xtype c -user ’inin’ \)
我覺(jué)的現(xiàn)在我應(yīng)該說(shuō)下出了查詢(xún)條件,在find中的option的內(nèi)容了:
在option中,具體有參數(shù):
-name ’字串’ 查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符 *、?、[ ]。
-lname ’字串’ 查找文件名匹配所給字串的所有符號(hào)鏈接文件,字串內(nèi)可用通配符 *、?、[ ]。
-gid n 查找屬于ID號(hào)為 n 的用戶(hù)組的所有文件。
-uid n 查找屬于ID號(hào)為 n 的用戶(hù)的所有文件。
-group ’字串’ 查找屬于用戶(hù)組名為所給字串的所有的文件。
-user ’字串’ 查找屬于用戶(hù)名為所給字串的所有的文件。
-empty 查找大小為 0的目錄或文件。
-path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[ ]。
-perm 權(quán)限 查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示單位,缺省為 b,代表512字節(jié)的塊。
-type x 查找類(lèi)型為 x 的文件,x 為下列字符之一:
b 塊設(shè)備文件
c 字符設(shè)備文件
d 目錄文件
p 命名管道(FIFO)
f 普通文件
l 符號(hào)鏈接文件(symbolic links)
s socket文件
-xtype x 與 -type 基本相同,但只查找符號(hào)鏈接文件。
以時(shí)間為條件查找
-amin n 查找n分鐘以前被訪問(wèn)過(guò)的所有文件。
-atime n 查找n天以前被訪問(wèn)過(guò)的所有文件。
-cmin n 查找n分鐘以前文件狀態(tài)被修改過(guò)的所有文件。
-ctime n 查找n天以前文件狀態(tài)被修改過(guò)的所有文件。
-mmin n 查找n分鐘以前文件內(nèi)容被修改過(guò)的所有文件。
-mtime n 查找n天以前文件內(nèi)容被修改過(guò)的所有文件。
-print:將搜索結(jié)果輸出到標(biāo)準(zhǔn)輸出。
2014-12-01
一、Linux中find常見(jiàn)用法示例
·find ?? path??? -option??? [??? -print ]??? [ -exec??? -ok??? command ]??? {} \;
#-print 將查找到的文件輸出到標(biāo)準(zhǔn)輸出
#-exec??? command??? {} \;?????? -----將查到的文件執(zhí)行command操作,{} 和 \;之間有空格
#-ok 和-exec相同,只不過(guò)在操作前要詢(xún)用戶(hù) ==================================================== -name??? filename?????????????? #查找名為filename的文件
-perm???????????????????????? #按執(zhí)行權(quán)限來(lái)查找
-user???? username????????????? #按文件屬主來(lái)查找
-group groupname????????????? #按組來(lái)查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來(lái)查找
-user???? username????????????? #按文件屬主來(lái)查找
-group groupname????????????? #按組來(lái)查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? 找文件,-n指n天以?xún)?nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件
-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件
-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄
-fstype?????????????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件
-mount??????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
-follow?????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
-cpio???????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中
-prune??????????????????????? #忽略某個(gè)目錄 ====================================================
$find??? ~??? -name??? "*.txt"??? -print????? #在$HOME中查.txt文件并顯示
$find??? .???? -name??? "*.txt"??? -print
$find??? .???? -name??? "[A-Z]*"??? -pri26nbsp;???? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中
-prune??????????????????????????????? #忽略某個(gè)目錄 $find??? .???? -name??? "[A-Z]*"??? -print??? #查以大寫(xiě)字母開(kāi)頭的文件
$find??? /etc??? -name??? "host*"??? -print #查以host開(kāi)頭的文件
$find??? .??? -name??? "[a-z][a-z][0--9][0--9].txt"???? -print??? #查以?xún)蓚€(gè)小寫(xiě)字母和兩個(gè)數(shù)字開(kāi)頭的txt文件
$find .??? -perm??? 755??? -print
$find??? .??? -perm -007??? -exec ls -l {} \;??? #查所有用戶(hù)都可讀寫(xiě)執(zhí)行的文件同-perm 777
$find??? . -type d??? -print?? 打印目錄結(jié)構(gòu)
$find??? .?? !??? -type??? d??? -print??打印非目錄文件 find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep無(wú)法遞歸搜索子目錄,故可以和find相結(jié)合使用。 在/usr/include 所有子目錄中的.h文件中找字串AF_INEF6
$find??? .??? -type l??? -print $find??? .??? -size??? +1000000c??? -print???????? #查長(zhǎng)度大于1Mb的文件
$find??? .??? -size??? 100c????????? -print??????? # 查長(zhǎng)度為100c的文件
$find??? .??? -size??? +10??? -print?????????????? #查長(zhǎng)度超過(guò)期作廢10塊的文件(1塊=512字節(jié)) $cd /
$find??? etc??? home??? apps???? -depth??? -print??? | cpio??? -ivcdC65536??? -o??? /dev/rmt0
$find??? /etc -name "passwd*"??? -exec grep??? "cnscn"??? {}??? \;??? #看是否存在cnscn用戶(hù)
$find . -name "yao*"??? | xargs file
$find??? . -name "yao*"??? |??? xargs??? echo???? "" > /tmp/core.log
$find??? . -name "yao*"??? | xargs??? chmod??? o-w ====================================================== find??? -name april*??????????????????????? 在當(dāng)前目錄下查找以april開(kāi)始的文件
find??? -name??? april*??? fprint file????????? 在當(dāng)前目錄下查找以april開(kāi)始的文件,并把結(jié)果輸出到file中
find??? -name ap* -o -name may*??? 查找以ap或may開(kāi)頭的文件
find??? /mnt??? -name tom.txt??? -ftype vfat??? 在/mnt下查找名稱(chēng)為tom.txt且文件系統(tǒng)類(lèi)型為vfat的文件
find??? /mnt??? -name t.txt ! -ftype vfat???? 在/mnt下查找名稱(chēng)為tom.txt且文件系統(tǒng)類(lèi)型不為vfat的文件
find??? /tmp??? -name wa* -type l???????????? 在/tmp下查找名為wa開(kāi)頭且類(lèi)型為符號(hào)鏈接的文件
find??? /home??? -mtime??? -2?????????????????? 在/home下查最近兩天內(nèi)改動(dòng)過(guò)的文件
find /home???? -atime -1??????????????????? 查1天之內(nèi)被存取過(guò)的文件
find /home -mmin???? +60??????????????????? 在/home下查60分鐘前改動(dòng)過(guò)的文件
find /home??? -amin??? +30??????????????????? 查最近30分鐘前被存取過(guò)的文件
find /home??? -newer??? tmp.txt?????????????? 在/home下查更新時(shí)間比tmp.txt近的文件或目錄
find /home??? -anewer??? tmp.txt????????????? 在/home下查存取時(shí)間比tmp.txt近的文件或目錄
find??? /home??? -used??? -2??????????????????? 列出文件或目錄被改動(dòng)過(guò)之后,在2日內(nèi)被存取過(guò)的文件或目錄
find??? /home??? -user cnscn????????????????? 列出/home目錄內(nèi)屬于用戶(hù)cnscn的文件或目錄
find??? /home??? -uid??? +501?????????????????? 列出/home目錄內(nèi)用戶(hù)的識(shí)別碼大于501的文件或目錄
find??? /home??? -group??? cnscn??????????????? 列出/home內(nèi)組為cnscn的文件或目錄
find??? /home??? -gid 501???????????????????? 列出/home內(nèi)組id為501的文件或目錄
find??? /home??? -nouser????????????????????? 列出/home內(nèi)不屬于本地用戶(hù)的文件或目錄
find??? /home??? -nogroup???????????????????? 列出/home內(nèi)不屬于本地組的文件或目錄
find??? /home???? -name tmp.txt???? -maxdepth??? 4??? 列出/home內(nèi)的tmp.txt 查時(shí)深度最多為3層
find??? /home??? -name tmp.txt??? -mindepth??? 3??? 從第2層開(kāi)始查
find??? /home??? -empty?????????????????????? 查找大小為0的文件或空目錄
find??? /home??? -size??? +512k???????????????? 查大于512k的文件
find??? /home??? -size??? -512k???????????????? 查小于512k的文件
find??? /home??? -links??? +2?????????????????? 查硬連接數(shù)大于2的文件或目錄
find??? /home??? -perm??? 0700????????????????? 查權(quán)限為700的文件或目錄
find??? /tmp??? -name tmp.txt??? -exec cat {} \;
find??? /tmp??? -name??? tmp.txt??? -ok??? rm {} \; find???? /??? -amin???? -10???????? # 查找在系統(tǒng)中最后10分鐘訪問(wèn)的文件
find???? /??? -atime??? -2?????????? # 查找在系統(tǒng)中最后48小時(shí)訪問(wèn)的文件
find???? /??? -empty??????????????? # 查找在系統(tǒng)中為空的文件或者文件夾
find???? /??? -group??? cat????????? # 查找在系統(tǒng)中屬于 groupcat的文件
find???? /??? -mmin??? -5?????????? # 查找在系統(tǒng)中最后5分鐘里修改過(guò)的文件
find???? /??? -mtime??? -1????????? #查找在系統(tǒng)中最后24小時(shí)里修改過(guò)的文件
find???? /??? -nouser?????????????? #查找在系統(tǒng)中屬于作廢用戶(hù)的文件
find???? /??? -user???? fred???????? #查找在系統(tǒng)中屬于FRED這個(gè)用戶(hù)的文件
2014-12-01
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件樹(shù)種查找文件,并作出相應(yīng)的處理
3.命令參數(shù):
pathname: find命令所查找的目錄路徑。例如用.來(lái)表示當(dāng)前目錄,用/來(lái)表示系統(tǒng)根目錄。
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' {? } \;,注意{?? }和\;之間的空格。
-ok: 和-exec的作用相同,只不過(guò)以一種更為安全的模式來(lái)執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶(hù)來(lái)確定是否執(zhí)行。
4.命令選項(xiàng):
-name?? 按照文件名查找文件。
-perm?? 按照文件權(quán)限來(lái)查找文件。
-prune? 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。
-user?? 按照文件屬主來(lái)查找文件。
-group? 按照文件所屬的組來(lái)查找文件。
-mtime -n +n? 按照文件的更改時(shí)間來(lái)查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以?xún)?nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。
-nogroup? 查找無(wú)有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser?? 查找無(wú)有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2? 查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type? 查找某一類(lèi)型的文件,諸如:
b - 塊設(shè)備文件。
d - 目錄。
c - 字符設(shè)備文件。
p - 管道文件。
l - 符號(hào)鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長(zhǎng)度為n塊的文件,帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)。-depth:在查找文件時(shí),首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找。
-fstype:查找位于某一類(lèi)型文件系統(tǒng)中的文件,這些文件系統(tǒng)類(lèi)型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。
-mount:在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。
-follow:如果find命令遇到符號(hào)鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對(duì)匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中。
2014-12-01
find :在需要添加通配符的時(shí)候需要將文件名雙引號(hào)勾選。
通配符有
??任意一個(gè)字符?
*?? 所有的
[]? 任意括號(hào)內(nèi)的字符
2014-12-01
-name??? filename?????????????? #查找名為filename的文件
-perm???????????????????????? #按執(zhí)行權(quán)限來(lái)查找
-user???? username????????????? #按文件屬主來(lái)查找
-group groupname????????????? #按組來(lái)查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來(lái)查找
-user???? username????????????? #按文件屬主來(lái)查找
-group groupname????????????? #按組來(lái)查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問(wèn)時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? 找文件,-n指n天以?xún)?nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來(lái)查找文件,-n指n天以?xún)?nèi),+n指n天以前
-nogroup????????????????????? #查無(wú)有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無(wú)有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件
-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件
-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄
-fstype?????????????????????? #查更改時(shí)間比f(wàn)1新但比f(wàn)2舊的文件
-mount??????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
-follow?????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
-cpio???????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中
-prune??????????????????????? #忽略某個(gè)目錄