如何创建一个文件 file_name 作为当前命令的输出?

How to create a file with file_name as the output of present command?

问题

我有一个文件存在于 /home/user/Samples/ 文件夹中,现在我有一个单独的文件夹 /home/user/Reports/。假设我在 Samples 文件夹中有一个示例 DOG.zip 文件,现在我想生成该示例的报告并将其存储在 Reports 文件夹中并将其命名为文件 MD5

我做了什么

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

但这会在 Reports 文件夹中生成 {} 文件,而不是一个以 md5 作为文件名的空文件。

关于如何解决这个问题有什么建议吗?

您需要将 -i 添加到 xargs 到 "enable" {} 占位符:

$ 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