您好,登錄后才能下訂單哦!
小編給大家分享一下怎么使用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è)資訊頻道!
免責(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)容。