溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用find和xargs查找和處理文件

發(fā)布時(shí)間:2021-10-26 14:45:31 來(lái)源:億速云 閱讀:97 作者:小新 欄目:建站服務(wù)器

小編給大家分享一下怎么使用find和xargs查找和處理文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


查找文件

find 至少要加上查找的路徑。例如,此命令將查找(并打?。┫到y(tǒng)上的每個(gè)文件:

find /

由于一切皆文件,因此你會(huì)看到大量的輸出。這可能無(wú)法幫助你找到所需的內(nèi)容。你可以更改路徑參數(shù)縮小范圍,但這實(shí)際上并沒(méi)有比使用 ls 命令更好。因此,你需要考慮要查找的內(nèi)容。
也許你想在家目錄中查找所有 JPEG 文件。 -name 參數(shù)允許你將結(jié)果限制為與給定模式匹配的文件。

find ~ -name '*jpg'

但是等等!如果其中一些擴(kuò)展名是大寫(xiě)怎么辦? -iname 類似于 -name,但不區(qū)分大小寫(xiě):

find ~ -iname '*jpg'

很好!但是 8.3 命名方案出自 1985 年。某些圖片的擴(kuò)展名可能是 .jpeg。幸運(yùn)的是,我們可以將模式使用“或”(-o)進(jìn)行組合。括號(hào)需要轉(zhuǎn)義,以便使 find 命令而不是  shell 程序嘗試解釋它們。

find ~ \( -iname 'jpeg' -o -iname 'jpg' \)

更進(jìn)一步。如果你有一些以 jpg 結(jié)尾的目錄怎么辦?(我不懂你為什么將目錄命名為 bucketofjpg 而不是 pictures?)我們可以加上 -type 參數(shù)來(lái)僅查找文件:

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f

或者,也許你想找到那些名字奇怪的目錄,以便之后可以重命名它們:

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d

最近你拍攝了很多照片,因此使用 -mtime(修改時(shí)間)將范圍縮小到最近一周修改過(guò)的文件。 -7 表示 7 天或更短時(shí)間內(nèi)修改的所有文件。

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7

使用 xargs 進(jìn)行操作

xargs 命令從標(biāo)準(zhǔn)輸入流中獲取參數(shù),并基于它們執(zhí)行命令。繼續(xù)使用上一節(jié)中的示例,假設(shè)你要將上周修改過(guò)的家目錄中的所有 JPEG 文件復(fù)制到 U 盤(pán),以便插到電子相冊(cè)上。假設(shè)你已經(jīng)將 U 盤(pán)掛載到 /media/photo_display。

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7 -print0 | xargs -0 cp -t /media/photo_display

這里的 find 命令與以前的版本略有不同。-print0 命令讓輸出有一些更改:它不使用換行符,而是添加了一個(gè) null 字符。xargs 的 -0(零)選項(xiàng)可調(diào)整解析以達(dá)到預(yù)期效果。這很重要,不然對(duì)包含空格、引號(hào)或其他特殊字符的文件名執(zhí)行操作可能無(wú)法按預(yù)期進(jìn)行。對(duì)文件采取任何操作時(shí),都應(yīng)使用這些選項(xiàng)。
cp 命令的 -t 參數(shù)很重要,因?yàn)?cp 通常要求目的地址在最后。你可以不使用 xargs 而使用 find 的 -exec 執(zhí)行此操作,但是 xargs 的方式會(huì)更快,尤其是對(duì)于大量文件,因?yàn)樗鼤?huì)單次調(diào)用 cp。

以上是“怎么使用find和xargs查找和處理文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI