一、which 命令(簡(jiǎn)單方便)
★ 功能:依據(jù)$PATH 環(huán)境變量中的目錄路徑,查找命令文件的文件路徑。
★ 舉例:
二、whereis 命令
★ 功能1:依據(jù)
P
A
T
H
環(huán)境變量中的目錄路徑,查找命令文件的文件路徑?!锕δ?
2
:依據(jù)
PATH 環(huán)境變量中的目錄路徑,查找命令文件的文件路徑。 ★ 功能2:依據(jù)
PATH環(huán)境變量中的目錄路徑,查找命令文件的文件路徑。★功能2:依據(jù)MANPATH 環(huán)境變量中的目錄路徑,查找命令文件的man幫助文件路徑。
★ 舉例:
三、locate 命令(不常用)
★ 功能:依據(jù)mlocate.db 數(shù)據(jù)庫(kù),查找匹配指定關(guān)鍵字的所有目錄和文件路徑
## 需要事先構(gòu)建/var/lib/mlocate/mlocate.db 數(shù)據(jù)庫(kù),mlocate.db數(shù)據(jù)庫(kù)中,不會(huì)包含/tmp 目錄內(nèi)容
## 構(gòu)建:mlocate.db 數(shù)據(jù)庫(kù)
yum install mlocate -y ## 安裝:locate 命令工具
updatedb ## 更新:mlocate.db 數(shù)據(jù)庫(kù)
★ 舉例:查找包含著shadow字符串的所有目錄和文件路徑
locate shadow
四、find 命令(強(qiáng)大的搜索命令)
★ 理解:find命令的命令結(jié)構(gòu)
★ 語(yǔ)法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
## 備注:
## [-P] [-L] [-H] 選項(xiàng):針對(duì)<搜索范圍>中的<符號(hào)鏈接>,設(shè)定是否<追溯搜索>
## ? 如果同時(shí)指定了 [-P] [-L] [-H] 選項(xiàng)(即:1個(gè)以上),則:從右向左,依次替代,最后一個(gè)生效。
## ? [-P] 針對(duì)<搜索范圍>中的<符號(hào)鏈接>,拒絕<鏈接追隨>,這是<默認(rèn)行為>。
## 舉例:find -P /bin -iname 'cat' ## <搜索范圍>指定的是</bin符號(hào)鏈接文件>,-P 會(huì)拒絕<鏈接追隨>
## ? [-L] 針對(duì)<搜索范圍>中的<符號(hào)鏈接>,允許<鏈接追隨>。
## 舉例:find -L /bin -iname 'cat' ## <搜索范圍>指定的是</bin符號(hào)鏈接文件>,-L 會(huì)允許<鏈接追隨>
## ? [-H] 針對(duì)<搜索范圍>中的<符號(hào)鏈接>,拒絕<鏈接追隨>(除非:<搜索范圍>直接指定為一個(gè)<符號(hào)鏈接>)。
## 舉例:find -H /bin -iname 'cat' ## <搜索范圍>直接指定為</bin符號(hào)鏈接文件>,-H 會(huì)允許<鏈接追隨>
★ 指定:find 搜索范圍:
直接指定:[選項(xiàng)] <目錄路徑1> <目錄路徑2> ...
舉例:find /dir01 /dir02 /dir03 ...
★ 設(shè)定:find 搜索條件:
##
## 常見(jiàn)條件類型如下:
## ? N 代表:<選項(xiàng)值>,它可以是:+N(大于) 或 -N(小于) 或 N(等于)
##
★ 設(shè)定:多條件組合
★ 設(shè)定:find 處理動(dòng)作
##
## 常見(jiàn)動(dòng)作如下:
##
-print ## 顯示:<匹配對(duì)象>的<名稱、絕對(duì)/相對(duì)路徑>,這是一個(gè)默認(rèn)動(dòng)作,可以省略,用于:標(biāo)準(zhǔn)輸出find匹配對(duì)象
-ls ## 列出:<匹配對(duì)象>的<詳細(xì)信息>,<-ls動(dòng)作>等價(jià)于<ls -dlis命令>
-delete ## 刪除:<匹配對(duì)象>
-prune ## 設(shè)置:如果<匹配對(duì)象>是<目錄>,則不要進(jìn)入該<目錄>
-exec ## 定義:針對(duì)find匹配對(duì)象,執(zhí)行一個(gè)指定COMMAND命令。
## 我們可以通過(guò)一個(gè)或多個(gè) -exec 動(dòng)作選項(xiàng),來(lái)執(zhí)行一個(gè)或多個(gè)指定COMMAND命令。
## 命令形式:command '{}' \; 每匹配一個(gè)對(duì)象,'{}'就覆蓋式置換一個(gè)對(duì)象,然后執(zhí)行一次動(dòng)作。
## ? 在 '{}' \; 組合中,依據(jù)command命令意圖,必須有且可有1個(gè)或多個(gè)'{}'。
## ? \; 表示:該 -exec動(dòng)作結(jié)束
## ? \ 是轉(zhuǎn)義符,用于表示:該<;分號(hào)>不是<SHELL命令行>的<;分號(hào)分隔符>。
## ? 注意:※ 針對(duì)大批量的find匹配對(duì)象,執(zhí)行效率低下。
## command '{}' + 每匹配一個(gè)對(duì)象,'{}'就追加式置換一個(gè)對(duì)象,然后執(zhí)行一次動(dòng)作。
## ? 在 '{}' + 組合中,依據(jù)command命令意圖,必須有且僅有1個(gè)'{}'。
## ? 在 '{}' + 組合中,+ 表示:可以在'{}'中,自動(dòng)追加多個(gè)find匹配對(duì)象。
## ? <+加號(hào)>的作用與<xargs命令>相同。
## ? 注意:
## ※ 追加多個(gè)find匹配對(duì)象,會(huì)大大減少動(dòng)作次數(shù)。
## ※ 針對(duì)大批量find匹配對(duì)象,會(huì)提高執(zhí)行效率。
## ※ 可追加的<find匹配對(duì)象總數(shù)>將受限于command命令自身的語(yǔ)法限制。
## 注意: '{}' 和 \; 和 + 彼此之間需要有【空格】
★ 案例學(xué)習(xí)1:查看根目錄下所有的 TXT 格式的文件
★ 案例學(xué)習(xí)2:把查找到的文件復(fù)制到一個(gè)指定的目錄
★ 案例學(xué)習(xí)3:把查找到的TXT文件,全部予以tar歸檔文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-831164.html
● 重點(diǎn)理解:-exec動(dòng)作的 '{}' \; 和 '{}' + 兩種不同處理機(jī)制,從而了解如何提高find動(dòng)作的處理效率。
touch /tmp/{1..10000}.txt
##
## 方法1:
## 特點(diǎn):慢(每1次動(dòng)作,僅處理1個(gè)find匹配對(duì)象)
## 注意:tar采用的是-c覆蓋打包選項(xiàng),因此,最終僅打包了最后一個(gè)文件
##
find /tmp -name '*.txt' -exec tar -acf a.tar.gz '{}' \;
##
## 方法2:
## 特點(diǎn):快(每1次動(dòng)作,可處理多個(gè)find匹配對(duì)象)
## 注意:tar采用的是-c覆蓋打包選項(xiàng),由于tar命令行可追加的打包對(duì)象參數(shù)有限,因此,最終僅打包了最后的一組文件
##
find /tmp -name '*.txt' -exec tar -acf b.tar.gz '{}' +
##
## 方法3:
## 特點(diǎn):快(每1次動(dòng)作,可處理多個(gè)find匹配對(duì)象)
## 注意:tar采用的是-r追加打包選項(xiàng),即便tar命令行可追加的打包對(duì)象參數(shù)有限,也可最終打包所有的文件
##
find /tmp -name '*.txt' -exec tar -arf c.tar.gz '{}' +
##
## 方法4:
## 特點(diǎn):快(將全部的find匹配對(duì)象,通過(guò) | 管道符,一次性交給tar命令去處理)
## 注意:tar采用的是-c覆蓋打包選項(xiàng),由于tar命令行可追加的打包對(duì)象參數(shù)有限,因此,最終僅打包了最后的一組文件
##
find /tmp -name '*.txt' | xargs tar -acf d.tar.gz
##
## 方法5:
## 特點(diǎn):快(將全部的find匹配對(duì)象,通過(guò) | 管道符,一次性交給tar命令去處理)
## 注意:tar采用的是-r追加打包選項(xiàng),即便tar命令行可追加的打包對(duì)象參數(shù)有限,也可最終打包所有的文件
##
find /tmp -name '*.txt' | xargs tar -arf e.tar.gz
★ 課后作業(yè)
1.現(xiàn)在我要執(zhí)行ss命令,我想知道這個(gè)ss命令文件的真實(shí)絕對(duì)路徑。請(qǐng)問(wèn):該如何做?
2.我記得有一個(gè)文件的文件名好像是ifcfg開(kāi)頭,好像在/etc目錄中,我該如何找出所有類似的文件?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-831164.html
到了這里,關(guān)于12 - Linux CentOS 7 文件和目錄搜索(which、whereis、locate、find)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!