linux中的find命令查找文件的用法詳解
linux中的find命令查找文件的用法詳解
linxu下的find命令可以用來(lái)查找文件,那么它的具體用法是怎樣的呢?下面由學(xué)習(xí)啦小編為大家整理了linux的find命令查找文件的用法詳解的相關(guān)知識(shí),希望對(duì)大家有幫助!
一.linux的find命令查找文件的用法詳解
find命令
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf #在根目錄下查找文件httpd.conf,表示在整個(gè)硬盤(pán)查找
(2)find /etc -name httpd.conf #在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*' #使用通配符*(0或者任意多個(gè))。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' #表示當(dāng)前目錄下查找文件名開(kāi)頭是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系統(tǒng)中最后10分鐘訪問(wèn)的文件(access time)
(2)find / -atime -2 # 查找在系統(tǒng)中最后48小時(shí)訪問(wèn)的文件
(3)find / -empty # 查找在系統(tǒng)中為空的文件或者文件夾
(4)find / -group cat # 查找在系統(tǒng)中屬于 group為cat的文件
(5)find / -mmin -5 # 查找在系統(tǒng)中最后5分鐘里修改過(guò)的文件(modify time)
(6)find / -mtime -1 #查找在系統(tǒng)中最后24小時(shí)里修改過(guò)的文件
(7)find / -user fred #查找在系統(tǒng)中屬于fred這個(gè)用戶的文件
(8)find / -size +10000c #查找出大于10000000字節(jié)的文件(c:字節(jié),w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
3.使用混合查找方式查找文件
參數(shù)有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查找大于10000字節(jié)并在最后2分鐘內(nèi)修改的文件
(2)find / -user fred -or -user george #在/目錄下查找用戶是fred或者george的文件文件
(3)find /tmp ! -user panda #在/tmp目錄中查找所有不屬于panda用戶的文件
二、linux的find命令的詳細(xì)介紹
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ì)給出提示,讓用戶來(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è)備中。
另外,下面三個(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ù)的文件
參考資料:linux的grep查找文件內(nèi)容命令詳解
基本格式:find expression
1.主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計(jì)數(shù)。
-i:不區(qū)分大小寫(xiě)
-h:查詢(xún)多文件時(shí)不顯示文件名。
-l:查詢(xún)多文件時(shí)只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號(hào)。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達(dá)式主要參數(shù):
\: 忽略正則表達(dá)式中特殊字符的原有含義。
^:匹配正則表達(dá)式的開(kāi)始行。
$: 匹配正則表達(dá)式的結(jié)束行。
\<:從匹配正則表達(dá) 式的行開(kāi)始。
\>:到匹配正則表達(dá)式的行結(jié)束。
[ ]:?jiǎn)蝹€(gè)字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個(gè)字符。
* :有字符,長(zhǎng)度可以為0。
2.實(shí)例
(1)grep 'test' d* #顯示所有以d開(kāi)頭的文件中包含 test的行
(2)grep ‘test’ aa bb cc #顯示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]\{5\}’ aa #顯示所有包含每行字符串至少有5個(gè)連續(xù)小寫(xiě)字符的字符串的行
(4)grep magic /usr/src #顯示/usr/src目錄下的文件(不含子目錄)包含magic的行
(5)grep -r magic /usr/src #顯示/usr/src目錄下的文件(包含子目錄)包含magic的行
(6)grep -w pattern files :只匹配整個(gè)單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),