第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

01.自行查找資料, 對(duì)find命令進(jìn)行擴(kuò)充學(xué)習(xí),并做筆記.[SZEZ]

請(qǐng)同學(xué)們跟帖回復(fù)。

正在回答

26 回答

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’的所有文件。


0 回復(fù) 有任何疑惑可以回復(fù)我~

與大多數(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ì)刪除該文件

0 回復(fù) 有任何疑惑可以回復(fù)我~

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ù)的文件


0 回復(fù) 有任何疑惑可以回復(fù)我~

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`

0 回復(fù) 有任何疑惑可以回復(fù)我~

查找指定時(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

0 回復(fù) 有任何疑惑可以回復(fù)我~

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è)目錄


0 回復(fù) 有任何疑惑可以回復(fù)我~

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è)用戶的文件


0 回復(fù) 有任何疑惑可以回復(fù)我~

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í)行幾乎所有的命令。

0 回復(fù) 有任何疑惑可以回復(fù)我~

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í)行。







0 回復(fù) 有任何疑惑可以回復(fù)我~

$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


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

01.自行查找資料, 對(duì)find命令進(jìn)行擴(kuò)充學(xué)習(xí),并做筆記.[SZEZ]

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)