Find

將 xargs 參數作為字元串傳遞給另一個帶有 ‘>’ 的命令?

  • February 7, 2011

假設我有一堆文件在/tmp/.

我願意

find . -type f | xargs -iFILES

我想md5sum在每個文件中做一個,輸出到一個同名但帶有.md5副檔名的文件。

find . -type f | xargs -iFILES md5sum FILES > FILES.md5

這應該為 find 命令找到的每個文件創建一個 md5 文件。相反,它會在磁碟上創建單個 FILES.md5 文件,其中包含所有文件的校驗和。

我如何對 md5sum 命令說 FILES 代表目前文件名而不是 FILES 文字字元串?

您需要使用 subshel​​l 來處理 IO 重定向:

find . -type f | xargs -iFILES sh -c 'md5sum FILES > FILES.md5'

使用 GNU Parallel,您可以:

find . -type f | parallel md5sum {} \> {}.md5

您可以獲得併行執行 md5sum 以及類似以下文件的額外好處:

My brother's 12" records.txt

不會導致您的命令崩潰。觀看介紹影片以了解更多資訊:http ://www.youtube.com/watch?v=OpaiGYxkSuQ

引用自:https://unix.stackexchange.com/questions/6903