我认为这个命令应该有效,但事实并非如此。我想将最高文件名编号的文件传输到tar
ls file-* | tail -1 | tar -xvf
它告诉我-f选项需要一个参数,所以我想我需要将stdin重定向到tar但是这不起作用......
tar -xvf < ls file-* | tail -1
我知道我可以将它存储在一个变量中,但我想在一行中完成它。
答案 0 :(得分:1)
假设您的文件名不包含任何空白/字符,您可以这样做:
ls file-* | tail -1 | xargs tar -xvf
答案 1 :(得分:1)
如果您的文件名包含空格或全局,则可以执行以下操作:
tar -xvf "$(ls file-* | tail -1)"
这称为command substitution,如果它被双引号括起,则会正确引用其结果。因此,例如,如果文件名是
file-01
file-02
该命令将扩展为
tar -xvf "file-02"
即使有空格和小球,这也会起作用,因为它们被引用了。