Jul*_*Lam 3 bash command-line grep xargs
我对xargs有一些经验,但是我不太了解该怎么做:
tarsnap --list-archives我可以使用xargs完成此操作:
tarsnap --list-archives | grep 2014-06-09 | xargs -n 1 tarsnap -df
Run Code Online (Sandbox Code Playgroud)
但是,这一次一次只需要一个参数就反复运行tarsnap(这是预期的):
tarsnap -df 2014-06-09-00
tarsnap -df 2014-06-09-01
tarsnap -df 2014-06-09-02
... etc ...
Run Code Online (Sandbox Code Playgroud)
tarsnap文档指出可以通过传递多个-f标志来删除多个归档:
tarsnap -d -f 2014-06-09-00 -f 2014-06-09-01 -f 2014-06-09-02 # ... and so on
Run Code Online (Sandbox Code Playgroud)
有没有办法用xargs做到这一点?
(此外:这样做可能毫无意义,因为我感觉运行带有多个-f标志的tarsnap只会导致tarsnap多次运行,一次仅一个参数...但我可能错了)
您实际上可以使用xargs
$ archivelist=$(tarsnap --list-a|xargs -I {} echo "-f {} ")
$ echo $archivelist
-f 2014-06-09-00 -f 2014-06-09-01 -f 2014-06-09-02 -f 2014-06-09-03
Run Code Online (Sandbox Code Playgroud)