課程
/運(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
正在回答
find命令中的尋找條件可以是一個(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è)給定條件都滿足的所有文件
(2) or:邏輯或,在命令中用“-o”表示。該運(yùn)算符表示只要所給的條件中有一個(gè)滿足 時(shí),尋找條件就算滿足。
find –name ’tmp’ –o –name ’mina*’
該命令查詢文件名為’tmp’或是匹配’mina*’的所有文件。
(3) not:邏輯非,在命令中用“!”表示。該運(yùn)算符表示查找不滿足所給條件的文件 。
find ! –name ’tmp’
該命令查詢文件名不是’tmp’的所有文件。
與大多數(shù) UNIX 命令一樣,UNIX?find?命令具有一長(zhǎng)串令人生畏的選項(xiàng)和開關(guān),它們會(huì)阻礙人們深入地學(xué)習(xí)該命令,但正是因?yàn)槠浞秶鷱V闊,真正的 Explorer 并不會(huì)被它們嚇倒。一條好的通用原則在簡(jiǎn)化一個(gè)復(fù)雜問題時(shí)都會(huì)經(jīng)過漫長(zhǎng)的過程。啟動(dòng)一個(gè) xterm,并嘗試執(zhí)行下面的命令:
?
$ find . -name *.gif -exec ls {} \;? ?
-exec?參數(shù)中包含了真正有價(jià)值的操作。當(dāng)查找到匹配搜索條件的文件時(shí),-exec?參數(shù)定義了將對(duì)這些文件進(jìn)行什么操作。該示例告訴計(jì)算機(jī)進(jìn)行如下操作:
從當(dāng)前文件夾開始往下搜索,緊跟在find?之后,使用點(diǎn)號(hào) (.)。定位所有名稱以 .gif 結(jié)尾的文件(圖形文件)。列出所有查找到的文件,使用ls命令。
需要對(duì)?-exec?參數(shù)進(jìn)行更深入地研究。當(dāng)查找到匹配搜索條件的文件名時(shí),find?命令執(zhí)行l(wèi)s {}字符串,用文件名和路徑代替文本{}.?假設(shè)在搜索中查找到 saturn.gif 文件,find?將執(zhí)行如下所示的命令:
$ ls ./gif_files/space/solar_system/saturn.gif? ?
本文余下的內(nèi)容建立在這條一般原則之上:仔細(xì)地使用?find?命令可以讓 UNIX 文件系統(tǒng)的管理工作變得更加容易。例如,如果您使用了?-fstype?參數(shù),find?命令可以根據(jù)查找到的文件所處的文件系統(tǒng)的類型來對(duì)命令進(jìn)行相應(yīng)的處理。在?find命令對(duì)查找到的文件執(zhí)行相應(yīng)命令前將對(duì)您進(jìn)行提示,這通常是非常有用的,您可以使用?-ok?參數(shù)告訴它繼續(xù)執(zhí)行該操作,接下來我們將對(duì)其進(jìn)行介紹。
可選的執(zhí)行
-ok是 -exec 參數(shù)的一個(gè)重要的替代項(xiàng),它的行為和?-exec一樣,但它會(huì)提示您是否要對(duì)文件運(yùn)行相應(yīng)的命令。假設(shè)您想要?jiǎng)h除 home 目錄中的大部分 .txt 文件,但希望能夠逐個(gè)文件地執(zhí)行該操作。像 UNIX 中的?rm命令那樣的刪除操作是很危險(xiǎn)的,因?yàn)楫?dāng)使用像find這樣的自動(dòng)化處理方式來查找文件時(shí),它可能一不小心會(huì)刪除重要的文件,您也許希望在刪除這些系統(tǒng)查找到的文件之前對(duì)其進(jìn)行仔細(xì)檢查。
下面的命令列出了您的 home 目錄中所有的 .txt 文件。要?jiǎng)h除這些文件,必須在?find?命令通過列出文件名提示您確認(rèn)操作時(shí)輸入?Y?或者?y:
$ find $HOME/. -name *.txt -ok rm {} \;? ?
它列出了查找到的每個(gè)文件,并且系統(tǒng)將暫停以等待您輸入?Y或者?y.?如果您按下?Enter?鍵,系統(tǒng)將不會(huì)刪除該文件
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件樹種查找文件,并作出相應(yīng)的處理
3.命令參數(shù):
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。?-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。?-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' {? } \;,注意{?? }和\;之間的空格。?-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
4.命令選項(xiàng):
-name?? 按照文件名查找文件。-perm?? 按照文件權(quán)限來查找文件。-prune? 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。-user?? 按照文件屬主來查找文件。-group? 按照文件所屬的組來查找文件。-mtime -n +n? 按照文件的更改時(shí)間來查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。-nogroup? 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。-nouser?? 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。-newer file1 ! file2? 查找更改時(shí)間比文件file1新但比文件file2舊的文件。-type? 查找某一類型的文件,諸如: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:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募?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分鐘訪問的文件-atime n? 查找系統(tǒng)中最后n*24小時(shí)訪問的文件-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ù)的文件
find命令是一個(gè)在UNIX文件系統(tǒng)中查找文件的常用命令,可以進(jìn)行很多條件查找。語法: find 路徑 約束條件
如何查找在文件名中含有指定關(guān)鍵字的文件?
下面這條命令查找在“/etc”目錄下所有文件名中含有“mail”的文件。?
# find /etc -name "*mail*"??
如何查找文件大小超過指定值的文件?
下面這個(gè)命令會(huì)列出系統(tǒng)中所有大于100M的文件
# find / -type f -size +100M
如何查找在最近幾天沒有被修改過的文件?
下面這條命令會(huì)列出在當(dāng)前目錄下在最近60天沒有被修改過文件
# find . -mtime +60
如何查找在最近幾天被修改的文件?
下面這條命令會(huì)列出在當(dāng)前目錄下在最近2天被修改過文件
# find . –mtime -2
如何刪除擴(kuò)展名為.tar.gz并且大于100M的壓縮文件?
當(dāng)你不想意外刪除文件時(shí),那么當(dāng)執(zhí)行下列命令要小心點(diǎn)。最好的方法是利用“l(fā)s -l”去執(zhí)行下列相同命令以確保當(dāng)執(zhí)行rm命令時(shí),你知道什么文件會(huì)被刪除。
# find / -type f -name *.tar.gz -size +100M -exec ls -l {} \;?
# find / -type f -name *.tar.gz -size +100M -exec rm -f {} \;
如何對(duì)最近幾天沒有被修改的文件進(jìn)行存檔?
下面的命令查找到在“/home/jsmith”目錄下最近60天沒有被修改的文件并且在“/tmp”下創(chuàng)建一個(gè)格式為“ddmmyyyy_archive.tar”的歸檔文件
# find /home/jsmith -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`
查找指定時(shí)間內(nèi)修改過的文件
命令:?????????? find -atime -2
根據(jù)關(guān)鍵字查找
命令:
find . -name "*.log"
按照目錄或文件的權(quán)限來查找文件
find /opt/soft/test/ -perm 777
按類型查找
find . -type f -name "*.log"
查找當(dāng)前所有目錄并排序
find . -type d | sort
按大小查找文件
find . -size +1000c -print
find 功能強(qiáng)大,但速度慢
要進(jìn)行模糊查詢就要使用以下的通配符:
* 匹配任意內(nèi)容? 匹配任意一個(gè)字符[] 匹配任意一個(gè)中括號(hào)內(nèi)的字符
下面是網(wǎng)上查詢的知識(shí):
-name?? filename???????????? #查找名為filename的文件-perm??????????????????????? #按執(zhí)行權(quán)限來查找-user??? username???????????? #按文件屬主來查找-group groupname??????????? #按組來查找-mtime?? -n +n??????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前-atime??? -n +n?????????????? #按文件訪問時(shí)間來查GIN: 0px">
-ctime??? -n +n????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-nogroup???????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser???????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer?? f1 !f2????????????? 找文件,-n指n天以內(nèi),+n指n天以前?-ctime??? -n +n?????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前?-nogroup???????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer?? f1 !f2?????????????? #查更改時(shí)間比f1新但比f2舊的文件-type??? b/d/c/p/l/f???????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件-size????? n[c]?????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件-depth?????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄-fstype???????????????????? #查更改時(shí)間比f1新但比f2舊的文件-type??? b/d/c/p/l/f???????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件-size????? n[c]?????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件-depth?????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄-fstype????????????????????? #查位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通???在/etc/fstab中找到-mount?????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)-follow????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件-cpio??????????????? %;????? #查位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通???在/etc/fstab中找到-mount?????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)-follow????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件-cpio??????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中-prune?????????????????????? #忽略某個(gè)目錄
Linux中find常見用法示例
·find ?? path??? -option??? [??? -print ]??? [ -exec??? -ok??? command ]??? {} \;#-print 將查找到的文件輸出到標(biāo)準(zhǔn)輸出#-exec??? command??? {} \;?????? -----將查到的文件執(zhí)行command操作,{} 和 \;之間有空格#-ok 和-exec相同,只不過在操作前要詢用戶 ==================================================== -name??? filename?????????????? #查找名為filename的文件-perm???????????????????????? #按執(zhí)行權(quán)限來查找-user???? username????????????? #按文件屬主來查找-group groupname????????????? #按組來查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問時(shí)間來查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來查找-user???? username????????????? #按文件屬主來查找-group groupname????????????? #按組來查找-mtime??? -n +n???????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前-atime???? -n +n??????????????? #按文件訪問時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前 -ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前 -nogroup????????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? 找文件,-n指n天以內(nèi),+n指n天以前 -ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前 -nogroup????????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在-nouser?????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存-newer??? f1 !f2??????????????? #查更改時(shí)間比f1新但比f2舊的文件-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄-fstype?????????????????????? #查更改時(shí)間比f1新但比f2舊的文件-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??? #查以大寫字母開頭的文件$find??? /etc??? -name??? "host*"??? -print #查以host開頭的文件$find??? .??? -name??? "[a-z][a-z][0--9][0--9].txt"???? -print??? #查以兩個(gè)小寫字母和兩個(gè)數(shù)字開頭的txt文件$find .??? -perm??? 755??? -print$find??? .??? -perm -007??? -exec ls -l {} \;??? #查所有用戶都可讀寫執(zhí)行的文件同-perm 777$find??? . -type d??? -print?? 打印目錄結(jié)構(gòu)$find??? .?? !??? -type??? d??? -print??打印非目錄文件 find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep無法遞歸搜索子目錄,故可以和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)度超過期作廢10塊的文件(1塊=512字節(jié)) $cd /$find??? etc??? home??? apps???? -depth??? -print??? | cpio??? -ivcdC65536??? -o??? /dev/rmt0$find??? /etc -name "passwd*"??? -exec grep??? "cnscn"??? {}??? \;??? #看是否存在cnscn用戶$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開始的文件find??? -name??? april*??? fprint file????????? 在當(dāng)前目錄下查找以april開始的文件,并把結(jié)果輸出到file中find??? -name ap* -o -name may*??? 查找以ap或may開頭的文件find??? /mnt??? -name tom.txt??? -ftype vfat??? 在/mnt下查找名稱為tom.txt且文件系統(tǒng)類型為vfat的文件find??? /mnt??? -name t.txt ! -ftype vfat???? 在/mnt下查找名稱為tom.txt且文件系統(tǒng)類型不為vfat的文件find??? /tmp??? -name wa* -type l???????????? 在/tmp下查找名為wa開頭且類型為符號(hào)鏈接的文件find??? /home??? -mtime??? -2?????????????????? 在/home下查最近兩天內(nèi)改動(dòng)過的文件find /home???? -atime -1??????????????????? 查1天之內(nèi)被存取過的文件find /home -mmin???? +60??????????????????? 在/home下查60分鐘前改動(dòng)過的文件find /home??? -amin??? +30??????????????????? 查最近30分鐘前被存取過的文件find /home??? -newer??? tmp.txt?????????????? 在/home下查更新時(shí)間比tmp.txt近的文件或目錄find /home??? -anewer??? tmp.txt????????????? 在/home下查存取時(shí)間比tmp.txt近的文件或目錄find??? /home??? -used??? -2??????????????????? 列出文件或目錄被改動(dòng)過之后,在2日內(nèi)被存取過的文件或目錄find??? /home??? -user cnscn????????????????? 列出/home目錄內(nèi)屬于用戶cnscn的文件或目錄find??? /home??? -uid??? +501?????????????????? 列出/home目錄內(nèi)用戶的識(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)不屬于本地用戶的文件或目錄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層開始查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分鐘訪問的文件find???? /??? -atime??? -2?????????? # 查找在系統(tǒng)中最后48小時(shí)訪問的文件find???? /??? -empty??????????????? # 查找在系統(tǒng)中為空的文件或者文件夾find???? /??? -group??? cat????????? # 查找在系統(tǒng)中屬于 groupcat的文件find???? /??? -mmin??? -5?????????? # 查找在系統(tǒng)中最后5分鐘里修改過的文件find???? /??? -mtime??? -1????????? #查找在系統(tǒng)中最后24小時(shí)里修改過的文件find???? /??? -nouser?????????????? #查找在系統(tǒng)中屬于作廢用戶的文件find???? /??? -user???? fred???????? #查找在系統(tǒng)中屬于FRED這個(gè)用戶的文件
1、find命令的一般形式為;
2、find命令的參數(shù);
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' { } ;,注意{ }和;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
3、find命令選項(xiàng)
-name
按照文件名查找文件。
-perm
按照文件權(quán)限來查找文件。
-prune
使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。
-user
按照文件屬主來查找文件。
-group
按照文件所屬的組來查找文件。
-mtime -n +n
按照文件的更改時(shí)間來查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。
-nogroup
查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser
查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type
查找某一類型的文件,諸如:
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:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募?etc/fstab中找到,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息。
-mount:在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。
-follow:如果find命令遇到符號(hào)鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對(duì)匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中。
-amin n
查找系統(tǒng)中最后N分鐘訪問的文件
-atime n
查找系統(tǒng)中最后n*24小時(shí)訪問的文件
-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來執(zhí)行shell命令
使用find命令時(shí),只要把想要的操作寫在一個(gè)文件里,就可以用exec來配合find命令查找,很方便的
在有些操作系統(tǒng)中只允許-exec選項(xiàng)執(zhí)行諸如l s或ls -l這樣的命令。大多數(shù)用戶使用這一選項(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 { } ;
記?。涸趕hell中用任何方式刪除文件之前,應(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日以上的文件,并刪除它們,只不過在刪除之前先給出提示。
$ 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用戶。
# find /etc -name "passwd*" -exec grep "sam" { } ;
sam:x:501:501::/usr/sam:/bin/bash
find命令的例子;
1、查找當(dāng)前用戶主目錄下的所有文件:
下面兩種方法都可以使用
$ find $HOME -print
$ find ~ -print
2、讓當(dāng)前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(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日以前的普通文件,并在刪除之前詢問它們;
$ 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)目錄中訪問時(shí)間在7日以來、含有數(shù)字后綴的admin.log文件。
該命令只檢查三位數(shù)字,所以相應(yīng)文件的后綴不要超過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
xargs
xargs - build and execute command lines from standard input
在使用find命令的-exec選項(xiàng)處理匹配到的文件時(shí), find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對(duì)能夠傳遞給exec的命令長(zhǎng)度有限制,這樣在find命令運(yùn)行幾分鐘之后,就會(huì)出現(xiàn)溢出錯(cuò)誤。錯(cuò)誤信息通常是“參數(shù)列太長(zhǎng)”或“參數(shù)列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。
find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項(xiàng)那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。
在有些系統(tǒng)中,使用-exec選項(xiàng)會(huì)為處理每一個(gè)匹配到的文件而發(fā)起一個(gè)相應(yīng)的進(jìn)程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行;這樣在有些情況下就會(huì)出現(xiàn)進(jìn)程過多,系統(tǒng)性能下降的問題,因而效率不高;
而使用xargs命令則只有一個(gè)進(jìn)程。另外,在使用xargs命令時(shí),究竟是一次獲取所有的參數(shù),還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會(huì)根據(jù)該命令的選項(xiàng)及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定。
來看看xargs命令是如何同find命令一起使用的,并給出一些例子。
下面的例子查找系統(tǒng)中的每一個(gè)普通文件,然后使用xargs命令來測(cè)試它們分別屬于哪類文件
#find . -type f -print | xargs file
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
./.kde/Autostart/.directory: ISO-8859 text
......
在整個(gè)系統(tǒng)中查找內(nèi)存信息轉(zhuǎn)儲(chǔ)文件(core dump) ,然后把結(jié)果保存到/tmp/core.log 文件中:
$ find / -name "core" -print | xargs echo "" >/tmp/core.log
上面這個(gè)執(zhí)行太慢,我改成在當(dāng)前目錄下查找
#find . -name "file*" -print | xargs echo "" > /temp/core.log
# cat /temp/core.log
./file6
在當(dāng)前目錄下查找所有用戶具有讀、寫和執(zhí)行權(quán)限的文件,并收回相應(yīng)的寫權(quán)限:
# ls -l
drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf
# find . -perm -7 -print | xargs chmod o-w
drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
用grep命令在所有的普通文件中搜索hostname這個(gè)詞:
# find . -type f -print | xargs grep "hostname"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
用grep命令在當(dāng)前目錄下的所有普通文件中搜索hostnames這個(gè)詞:
# find . -name * -type f -print | xargs grep "hostnames"
注意,在上面的例子中, 用來取消find命令中的*在shell中的特殊含義。
find命令配合使用exec和xargs可以使用戶對(duì)所匹配到的文件執(zhí)行幾乎所有的命令。
find命令的一般形式為: ??
參數(shù)說明:
-print: ? find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: ? ?find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為"command { } \; ",注意"{ }"和“\;”之間的空格。
$find?? ~?? -name?? "*.txt"?? -print??? #在$HOME中查.txt文件并顯示$find?? .??? -name?? "*.txt"?? -print$find?? .??? -name?? "[A-Z]*"?? -print?? #查以大寫字母開頭的文件$find?? /etc?? -name?? "host*"?? -print #查以host開頭的文件$find?? .?? -name?? "[a-z][a-z][0–9][0–9].txt"??? -print?? #查以兩個(gè)小寫字母和兩個(gè)數(shù)字開頭的txt文件$find .?? -perm?? 755?? -print$find?? .?? -perm -007?? -exec ls -l {} \;?? #查所有用戶都可讀寫執(zhí)行的文件同-perm 777$find?? . -type d?? -print$find?? .?? !?? -type?? d?? -print?$find?? .?? -type l?? -print
$find?? .?? -size?? +1000000c?? -print??????? #查長(zhǎng)度大于1Mb的文件$find?? .?? -size?? 100c???????? -print?????? # 查長(zhǎng)度為100c的文件$find?? .?? -size?? +10?? -print????????????? #查長(zhǎng)度超過期作廢10塊的文件(1塊=512字節(jié))$find?? etc?? home?? apps??? -depth?? -print?? | cpio?? -ivcdC65536?? -o?? /dev/rmt0$find?? /etc -name "passwd*"?? -exec grep?? "cnscn"?? {}?? \;?? #看是否存在cnscn用戶$find . -name "yao*"?? | xargs file$find?? . -name "yao*"?? |?? xargs?? echo??? "" > /tmp/core.log$find?? . -name "yao*"?? | xargs?? chmod?? o-w
舉報(bào)
Linux入門視頻教程,以通俗易懂的語言帶你感受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沒有正常執(zhí)行
27 回答3.是列舉所學(xué)的通配符,并解釋其含義?針對(duì)每一個(gè)通配符,書寫一條find命令,并給出簡(jiǎn)要解釋。SZEZ
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2014-12-01
find命令中的尋找條件可以是一個(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è)給定條件都滿足的所有文件
(2) or:邏輯或,在命令中用“-o”表示。該運(yùn)算符表示只要所給的條件中有一個(gè)滿足 時(shí),尋找條件就算滿足。
例如:
find –name ’tmp’ –o –name ’mina*’
該命令查詢文件名為’tmp’或是匹配’mina*’的所有文件。
(3) not:邏輯非,在命令中用“!”表示。該運(yùn)算符表示查找不滿足所給條件的文件 。
例如:
find ! –name ’tmp’
該命令查詢文件名不是’tmp’的所有文件。
2014-12-01
與大多數(shù) UNIX 命令一樣,UNIX?find?命令具有一長(zhǎng)串令人生畏的選項(xiàng)和開關(guān),它們會(huì)阻礙人們深入地學(xué)習(xí)該命令,但正是因?yàn)槠浞秶鷱V闊,真正的 Explorer 并不會(huì)被它們嚇倒。一條好的通用原則在簡(jiǎn)化一個(gè)復(fù)雜問題時(shí)都會(huì)經(jīng)過漫長(zhǎng)的過程。啟動(dòng)一個(gè) xterm,并嘗試執(zhí)行下面的命令:
?
$ find . -name *.gif -exec ls {} \;
? ?
?
-exec?參數(shù)中包含了真正有價(jià)值的操作。當(dāng)查找到匹配搜索條件的文件時(shí),-exec?參數(shù)定義了將對(duì)這些文件進(jìn)行什么操作。該示例告訴計(jì)算機(jī)進(jìn)行如下操作:
從當(dāng)前文件夾開始往下搜索,緊跟在find?之后,使用點(diǎn)號(hào) (.)。定位所有名稱以 .gif 結(jié)尾的文件(圖形文件)。列出所有查找到的文件,使用ls命令。
?
需要對(duì)?-exec?參數(shù)進(jìn)行更深入地研究。當(dāng)查找到匹配搜索條件的文件名時(shí),find?命令執(zhí)行l(wèi)s {}字符串,用文件名和路徑代替文本{}.?假設(shè)在搜索中查找到 saturn.gif 文件,find?將執(zhí)行如下所示的命令:
?
$ ls ./gif_files/space/solar_system/saturn.gif
? ?
?
本文余下的內(nèi)容建立在這條一般原則之上:仔細(xì)地使用?find?命令可以讓 UNIX 文件系統(tǒng)的管理工作變得更加容易。例如,如果您使用了?-fstype?參數(shù),find?命令可以根據(jù)查找到的文件所處的文件系統(tǒng)的類型來對(duì)命令進(jìn)行相應(yīng)的處理。在?find命令對(duì)查找到的文件執(zhí)行相應(yīng)命令前將對(duì)您進(jìn)行提示,這通常是非常有用的,您可以使用?-ok?參數(shù)告訴它繼續(xù)執(zhí)行該操作,接下來我們將對(duì)其進(jìn)行介紹。
可選的執(zhí)行
-ok是 -exec 參數(shù)的一個(gè)重要的替代項(xiàng),它的行為和?-exec一樣,但它會(huì)提示您是否要對(duì)文件運(yùn)行相應(yīng)的命令。假設(shè)您想要?jiǎng)h除 home 目錄中的大部分 .txt 文件,但希望能夠逐個(gè)文件地執(zhí)行該操作。像 UNIX 中的?rm命令那樣的刪除操作是很危險(xiǎn)的,因?yàn)楫?dāng)使用像find這樣的自動(dòng)化處理方式來查找文件時(shí),它可能一不小心會(huì)刪除重要的文件,您也許希望在刪除這些系統(tǒng)查找到的文件之前對(duì)其進(jìn)行仔細(xì)檢查。
下面的命令列出了您的 home 目錄中所有的 .txt 文件。要?jiǎng)h除這些文件,必須在?find?命令通過列出文件名提示您確認(rèn)操作時(shí)輸入?Y?或者?y:
?
$ find $HOME/. -name *.txt -ok rm {} \;
? ?
?
它列出了查找到的每個(gè)文件,并且系統(tǒng)將暫停以等待您輸入?Y或者?y.?如果您按下?Enter?鍵,系統(tǒng)將不會(huì)刪除該文件
2014-12-01
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件樹種查找文件,并作出相應(yīng)的處理
3.命令參數(shù):
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。?
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。?
-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' {? } \;,注意{?? }和\;之間的空格。?
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
4.命令選項(xiàng):
-name?? 按照文件名查找文件。
-perm?? 按照文件權(quán)限來查找文件。
-prune? 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。
-user?? 按照文件屬主來查找文件。
-group? 按照文件所屬的組來查找文件。
-mtime -n +n? 按照文件的更改時(shí)間來查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。
-nogroup? 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser?? 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2? 查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type? 查找某一類型的文件,諸如:
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:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募?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分鐘訪問的文件
-atime n? 查找系統(tǒng)中最后n*24小時(shí)訪問的文件
-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ù)的文件
2014-12-01
find命令是一個(gè)在UNIX文件系統(tǒng)中查找文件的常用命令,可以進(jìn)行很多條件查找。
語法: find 路徑 約束條件
如何查找在文件名中含有指定關(guān)鍵字的文件?
下面這條命令查找在“/etc”目錄下所有文件名中含有“mail”的文件。?
# find /etc -name "*mail*"??
如何查找文件大小超過指定值的文件?
下面這個(gè)命令會(huì)列出系統(tǒng)中所有大于100M的文件
# find / -type f -size +100M
如何查找在最近幾天沒有被修改過的文件?
下面這條命令會(huì)列出在當(dāng)前目錄下在最近60天沒有被修改過文件
# find . -mtime +60
如何查找在最近幾天被修改的文件?
下面這條命令會(huì)列出在當(dāng)前目錄下在最近2天被修改過文件
# find . –mtime -2
如何刪除擴(kuò)展名為.tar.gz并且大于100M的壓縮文件?
當(dāng)你不想意外刪除文件時(shí),那么當(dāng)執(zhí)行下列命令要小心點(diǎn)。
最好的方法是利用“l(fā)s -l”去執(zhí)行下列相同命令以確保當(dāng)執(zhí)行rm命令時(shí),你知道什么文件會(huì)被刪除。
# find / -type f -name *.tar.gz -size +100M -exec ls -l {} \;?
# find / -type f -name *.tar.gz -size +100M -exec rm -f {} \;
如何對(duì)最近幾天沒有被修改的文件進(jìn)行存檔?
下面的命令查找到在“/home/jsmith”目錄下最近60天沒有被修改的文件并且在“/tmp”下創(chuàng)建一個(gè)格式為“ddmmyyyy_archive.tar”的歸檔文件
# find /home/jsmith -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`
2014-12-01
查找指定時(shí)間內(nèi)修改過的文件
命令:
?????????? find -atime -2
?
根據(jù)關(guān)鍵字查找
命令:
find . -name "*.log"
?
按照目錄或文件的權(quán)限來查找文件
命令:
find /opt/soft/test/ -perm 777
?
按類型查找
命令:
find . -type f -name "*.log"
?
查找當(dāng)前所有目錄并排序
命令:
find . -type d | sort
?
按大小查找文件
命令:
find . -size +1000c -print
2014-12-01
find 功能強(qiáng)大,但速度慢
要進(jìn)行模糊查詢就要使用以下的通配符:
* 匹配任意內(nèi)容
? 匹配任意一個(gè)字符
[] 匹配任意一個(gè)中括號(hào)內(nèi)的字符
下面是網(wǎng)上查詢的知識(shí):
-name?? filename???????????? #查找名為filename的文件
-perm??????????????????????? #按執(zhí)行權(quán)限來查找
-user??? username???????????? #按文件屬主來查找
-group groupname??????????? #按組來查找
-mtime?? -n +n??????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-atime??? -n +n?????????????? #按文件訪問時(shí)間來查GIN: 0px">
-ctime??? -n +n????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-nogroup???????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser???????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer?? f1 !f2????????????? 找文件,-n指n天以內(nèi),+n指n天以前?
-ctime??? -n +n?????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前?
-nogroup???????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer?? f1 !f2?????????????? #查更改時(shí)間比f1新但比f2舊的文件
-type??? b/d/c/p/l/f???????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
-size????? n[c]?????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件
-depth?????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄
-fstype???????????????????? #查更改時(shí)間比f1新但比f2舊的文件
-type??? b/d/c/p/l/f???????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
-size????? n[c]?????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件
-depth?????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄
-fstype????????????????????? #查位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通???在/etc/fstab中找到
-mount?????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
-follow????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
-cpio??????????????? %;????? #查位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通???在/etc/fstab中找到
-mount?????????????????????? #查文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)
-follow????????????????????? #如果遇到符號(hào)鏈接文件,就跟蹤鏈接所指的文件
-cpio??????????????????????? #對(duì)匹配的文件使用cpio命令,將他們備份到磁帶設(shè)備中
-prune?????????????????????? #忽略某個(gè)目錄
2014-12-01
Linux中find常見用法示例
·find ?? path??? -option??? [??? -print ]??? [ -exec??? -ok??? command ]??? {} \;
#-print 將查找到的文件輸出到標(biāo)準(zhǔn)輸出
#-exec??? command??? {} \;?????? -----將查到的文件執(zhí)行command操作,{} 和 \;之間有空格
#-ok 和-exec相同,只不過在操作前要詢用戶 ==================================================== -name??? filename?????????????? #查找名為filename的文件
-perm???????????????????????? #按執(zhí)行權(quán)限來查找
-user???? username????????????? #按文件屬主來查找
-group groupname????????????? #按組來查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問時(shí)間來查GIN: 0px">-perm????????????????????????? #按執(zhí)行權(quán)限來查找
-user???? username????????????? #按文件屬主來查找
-group groupname????????????? #按組來查找
-mtime??? -n +n???????????????? #按文件更改時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-atime???? -n +n??????????????? #按文件訪問時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-nogroup????????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? 找文件,-n指n天以內(nèi),+n指n天以前
-ctime???? -n +n??????????????? #按文件創(chuàng)建時(shí)間來查找文件,-n指n天以內(nèi),+n指n天以前
-nogroup????????????????????? #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser?????????????????????? #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer??? f1 !f2??????????????? #查更改時(shí)間比f1新但比f2舊的文件
-type????? b/d/c/p/l/f????????? #查是塊設(shè)備、目錄、字符設(shè)備、管道、符號(hào)鏈接、普通文件
-size?????? n[c]??????????????? #查長(zhǎng)度為n塊[或n字節(jié)]的文件
-depth??????????????????????? #使查找在進(jìn)入子目錄前先行查找完本目錄
-fstype?????????????????????? #查更改時(shí)間比f1新但比f2舊的文件
-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??? #查以大寫字母開頭的文件
$find??? /etc??? -name??? "host*"??? -print #查以host開頭的文件
$find??? .??? -name??? "[a-z][a-z][0--9][0--9].txt"???? -print??? #查以兩個(gè)小寫字母和兩個(gè)數(shù)字開頭的txt文件
$find .??? -perm??? 755??? -print
$find??? .??? -perm -007??? -exec ls -l {} \;??? #查所有用戶都可讀寫執(zhí)行的文件同-perm 777
$find??? . -type d??? -print?? 打印目錄結(jié)構(gòu)
$find??? .?? !??? -type??? d??? -print??打印非目錄文件 find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep無法遞歸搜索子目錄,故可以和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)度超過期作廢10塊的文件(1塊=512字節(jié)) $cd /
$find??? etc??? home??? apps???? -depth??? -print??? | cpio??? -ivcdC65536??? -o??? /dev/rmt0
$find??? /etc -name "passwd*"??? -exec grep??? "cnscn"??? {}??? \;??? #看是否存在cnscn用戶
$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開始的文件
find??? -name??? april*??? fprint file????????? 在當(dāng)前目錄下查找以april開始的文件,并把結(jié)果輸出到file中
find??? -name ap* -o -name may*??? 查找以ap或may開頭的文件
find??? /mnt??? -name tom.txt??? -ftype vfat??? 在/mnt下查找名稱為tom.txt且文件系統(tǒng)類型為vfat的文件
find??? /mnt??? -name t.txt ! -ftype vfat???? 在/mnt下查找名稱為tom.txt且文件系統(tǒng)類型不為vfat的文件
find??? /tmp??? -name wa* -type l???????????? 在/tmp下查找名為wa開頭且類型為符號(hào)鏈接的文件
find??? /home??? -mtime??? -2?????????????????? 在/home下查最近兩天內(nèi)改動(dòng)過的文件
find /home???? -atime -1??????????????????? 查1天之內(nèi)被存取過的文件
find /home -mmin???? +60??????????????????? 在/home下查60分鐘前改動(dòng)過的文件
find /home??? -amin??? +30??????????????????? 查最近30分鐘前被存取過的文件
find /home??? -newer??? tmp.txt?????????????? 在/home下查更新時(shí)間比tmp.txt近的文件或目錄
find /home??? -anewer??? tmp.txt????????????? 在/home下查存取時(shí)間比tmp.txt近的文件或目錄
find??? /home??? -used??? -2??????????????????? 列出文件或目錄被改動(dòng)過之后,在2日內(nèi)被存取過的文件或目錄
find??? /home??? -user cnscn????????????????? 列出/home目錄內(nèi)屬于用戶cnscn的文件或目錄
find??? /home??? -uid??? +501?????????????????? 列出/home目錄內(nèi)用戶的識(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)不屬于本地用戶的文件或目錄
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層開始查
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分鐘訪問的文件
find???? /??? -atime??? -2?????????? # 查找在系統(tǒng)中最后48小時(shí)訪問的文件
find???? /??? -empty??????????????? # 查找在系統(tǒng)中為空的文件或者文件夾
find???? /??? -group??? cat????????? # 查找在系統(tǒng)中屬于 groupcat的文件
find???? /??? -mmin??? -5?????????? # 查找在系統(tǒng)中最后5分鐘里修改過的文件
find???? /??? -mtime??? -1????????? #查找在系統(tǒng)中最后24小時(shí)里修改過的文件
find???? /??? -nouser?????????????? #查找在系統(tǒng)中屬于作廢用戶的文件
find???? /??? -user???? fred???????? #查找在系統(tǒng)中屬于FRED這個(gè)用戶的文件
2014-12-01
1、find命令的一般形式為;
find pathname -options [-print -exec -ok ...]
2、find命令的參數(shù);
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。
-print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' { } ;,注意{ }和;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
3、find命令選項(xiàng)
-name
按照文件名查找文件。
-perm
按照文件權(quán)限來查找文件。
-prune
使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被find命令忽略。
-user
按照文件屬主來查找文件。
-group
按照文件所屬的組來查找文件。
-mtime -n +n
按照文件的更改時(shí)間來查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。find命令還有-atime和-ctime 選項(xiàng),但它們都和-m time選項(xiàng)。
-nogroup
查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser
查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改時(shí)間比文件file1新但比文件file2舊的文件。
-type
查找某一類型的文件,諸如:
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:查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通??梢栽谂渲梦募?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分鐘訪問的文件
-atime n
查找系統(tǒng)中最后n*24小時(shí)訪問的文件
-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來執(zhí)行shell命令
使用find命令時(shí),只要把想要的操作寫在一個(gè)文件里,就可以用exec來配合find命令查找,很方便的
在有些操作系統(tǒng)中只允許-exec選項(xiàng)執(zhí)行諸如l s或ls -l這樣的命令。大多數(shù)用戶使用這一選項(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 { } ;
記?。涸趕hell中用任何方式刪除文件之前,應(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日以上的文件,并刪除它們,只不過在刪除之前先給出提示。
$ 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用戶。
# find /etc -name "passwd*" -exec grep "sam" { } ;
sam:x:501:501::/usr/sam:/bin/bash
find命令的例子;
1、查找當(dāng)前用戶主目錄下的所有文件:
下面兩種方法都可以使用
$ find $HOME -print
$ find ~ -print
2、讓當(dāng)前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(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日以前的普通文件,并在刪除之前詢問它們;
$ 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)目錄中訪問時(shí)間在7日以來、含有數(shù)字后綴的admin.log文件。
該命令只檢查三位數(shù)字,所以相應(yīng)文件的后綴不要超過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
xargs
xargs - build and execute command lines from standard input
在使用find命令的-exec選項(xiàng)處理匹配到的文件時(shí), find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對(duì)能夠傳遞給exec的命令長(zhǎng)度有限制,這樣在find命令運(yùn)行幾分鐘之后,就會(huì)出現(xiàn)溢出錯(cuò)誤。錯(cuò)誤信息通常是“參數(shù)列太長(zhǎng)”或“參數(shù)列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。
find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項(xiàng)那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。
在有些系統(tǒng)中,使用-exec選項(xiàng)會(huì)為處理每一個(gè)匹配到的文件而發(fā)起一個(gè)相應(yīng)的進(jìn)程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行;這樣在有些情況下就會(huì)出現(xiàn)進(jìn)程過多,系統(tǒng)性能下降的問題,因而效率不高;
而使用xargs命令則只有一個(gè)進(jìn)程。另外,在使用xargs命令時(shí),究竟是一次獲取所有的參數(shù),還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會(huì)根據(jù)該命令的選項(xiàng)及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定。
來看看xargs命令是如何同find命令一起使用的,并給出一些例子。
下面的例子查找系統(tǒng)中的每一個(gè)普通文件,然后使用xargs命令來測(cè)試它們分別屬于哪類文件
#find . -type f -print | xargs file
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
./.kde/Autostart/.directory: ISO-8859 text
......
在整個(gè)系統(tǒng)中查找內(nèi)存信息轉(zhuǎn)儲(chǔ)文件(core dump) ,然后把結(jié)果保存到/tmp/core.log 文件中:
$ find / -name "core" -print | xargs echo "" >/tmp/core.log
上面這個(gè)執(zhí)行太慢,我改成在當(dāng)前目錄下查找
#find . -name "file*" -print | xargs echo "" > /temp/core.log
# cat /temp/core.log
./file6
在當(dāng)前目錄下查找所有用戶具有讀、寫和執(zhí)行權(quán)限的文件,并收回相應(yīng)的寫權(quán)限:
# ls -l
drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf
# find . -perm -7 -print | xargs chmod o-w
# ls -l
drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
用grep命令在所有的普通文件中搜索hostname這個(gè)詞:
# find . -type f -print | xargs grep "hostname"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
用grep命令在當(dāng)前目錄下的所有普通文件中搜索hostnames這個(gè)詞:
# find . -name * -type f -print | xargs grep "hostnames"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
注意,在上面的例子中, 用來取消find命令中的*在shell中的特殊含義。
find命令配合使用exec和xargs可以使用戶對(duì)所匹配到的文件執(zhí)行幾乎所有的命令。
2014-12-01
find命令的一般形式為: ??
find pathname -options [-print -exec -ok ...]
參數(shù)說明:
pathname: find命令所查找的目錄路徑。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄。
-print: ? find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出。
-exec: ? ?find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為"command { } \; ",注意"{ }"和“\;”之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前,都會(huì)給出提示,讓用戶來確定是否執(zhí)行。
2014-12-01
$find?? ~?? -name?? "*.txt"?? -print??? #在$HOME中查.txt文件并顯示
$find?? .??? -name?? "*.txt"?? -print
$find?? .??? -name?? "[A-Z]*"?? -print?? #查以大寫字母開頭的文件
$find?? /etc?? -name?? "host*"?? -print #查以host開頭的文件
$find?? .?? -name?? "[a-z][a-z][0–9][0–9].txt"??? -print?? #查以兩個(gè)小寫字母和兩個(gè)數(shù)字開頭的txt文件
$find .?? -perm?? 755?? -print
$find?? .?? -perm -007?? -exec ls -l {} \;?? #查所有用戶都可讀寫執(zhí)行的文件同-perm 777
$find?? . -type d?? -print
$find?? .?? !?? -type?? d?? -print?
$find?? .?? -type l?? -print
$find?? .?? -size?? +1000000c?? -print??????? #查長(zhǎng)度大于1Mb的文件
$find?? .?? -size?? 100c???????? -print?????? # 查長(zhǎng)度為100c的文件
$find?? .?? -size?? +10?? -print????????????? #查長(zhǎng)度超過期作廢10塊的文件(1塊=512字節(jié))
$find?? etc?? home?? apps??? -depth?? -print?? | cpio?? -ivcdC65536?? -o?? /dev/rmt0
$find?? /etc -name "passwd*"?? -exec grep?? "cnscn"?? {}?? \;?? #看是否存在cnscn用戶
$find . -name "yao*"?? | xargs file
$find?? . -name "yao*"?? |?? xargs?? echo??? "" > /tmp/core.log
$find?? . -name "yao*"?? | xargs?? chmod?? o-w