2017-08-12 60 views
0

問題如何用file_name作爲當前命令的輸出創建一個文件?

我有一個文件,該文件是存在於/home/user/Samples/文件夾現在我有一個單獨的文件夾/home/user/Reports/。假設我有樣本文件夾中的樣本DOG.zip文件,現在我想產生這個樣品的報告,並將其存儲在報告文件夾,並將它命名爲文件

我做了什麼

cd /home/user/Samples/ 
md5sum DOG.zip | xargs touch ../Reports/{} 
MD5

但這是在Reports文件夾中生成{}文件,但不是以md5作爲文件名的空文件。

有關如何解決此問題的任何建議?

+0

我不知道你想要什麼。我想你不想'touch/home/user/Reports/md5'。 類似於'file = DOG.zip; md5sum「$ {file}」;觸摸「../ Reports/$ {file}」',或者對所有結果執行此操作,或者將md5的輸出重定向到報表中的文件,或將名稱從'DOG.zip'更改爲'DOG.md5'。 –

回答

1

您需要添加-i到xargs的「使」的{}佔位符:

$ seq 10 | xargs echo foo{} 
foo{} 1 2 3 4 5 6 7 8 9 10 
$ seq 10 | xargs -i echo foo{} 
foo1 
foo2 
foo3 
foo4 
foo5 
foo6 
foo7 
foo8 
foo9 
foo10 
相關問題