共計(jì) 1424 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
丸趣 TV 小編給大家分享一下怎么使用 find 和 xargs 查找和處理文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
查找文件
find 至少要加上查找的路徑。例如,此命令將查找(并打印)系統(tǒng)上的每個(gè)文件:
find /
由于一切皆文件,因此你會(huì)看到大量的輸出。這可能無(wú)法幫助你找到所需的內(nèi)容。你可以更改路徑參數(shù)縮小范圍,但這實(shí)際上并沒(méi)有比使用 ls 命令更好。因此,你需要考慮要查找的內(nèi)容。
也許你想在家目錄中查找所有 JPEG 文件。-name 參數(shù)允許你將結(jié)果限制為與給定模式匹配的文件。
find ~ -name *jpg
但是等等!如果其中一些擴(kuò)展名是大寫怎么辦?-iname 類似于 -name,但不區(qū)分大小寫:
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 盤,以便插到電子相冊(cè)上。假設(shè)你已經(jīng)將 U 盤掛載到 /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)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問(wèn)一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!