从管道接收多个文件并写入不同的目的地

从管道接收多个文件并写入不同的目的地

我本地有这个命令:

  nc localhost 3440 | tar -x -O > ores.tgz

如果我从服务器收到一个文件,它将被写入我的密码中的 ores.tgz 中。

但是,如果我从服务器收到多个文件,则看起来只有我收到的最后一个文件会保存到文件中,可能会覆盖以前的所有文件。

所以我的问题是 - 有没有办法使用类似的命令将多个文件保存到我的密码中的不同文件名?

答案1

您可以通过以下方式使用时间戳后缀保存它:

nc localhost 3440 | tar -x -O > ores-$(date +%s.%N).tgz

它将生成名称如下的文件:

ores-1526341128.393345176.tar.gz
ores-1526341129.366798510.tar.gz
ores-1526341332.305878646.tar.gz
ores-1526341332.545975256.tar.gz
ores-1526341332.786026292.tar.gz

当然,%N如果您的下载强度不高,您可以删除纳秒精度 ( )。

相关内容