Find
將 xargs 參數作為字元串傳遞給另一個帶有 ‘>’ 的命令?
假設我有一堆文件在
/tmp/
.我願意
find . -type f | xargs -iFILES
我想
md5sum
在每個文件中做一個,輸出到一個同名但帶有.md5
副檔名的文件。find . -type f | xargs -iFILES md5sum FILES > FILES.md5
這應該為 find 命令找到的每個文件創建一個 md5 文件。相反,它會在磁碟上創建單個 FILES.md5 文件,其中包含所有文件的校驗和。
我如何對 md5sum 命令說 FILES 代表目前文件名而不是 FILES 文字字元串?
您需要使用 subshell 來處理 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