通过“xargs”将变量从“ls”传递给“tar”

oli*_*ilo 9 linux ls tar xargs

我正在尝试做类似的事情

ls -t | head -n 3 | xargs -I {} tar -cf t.tar {}
Run Code Online (Sandbox Code Playgroud)

存档最后修改的 3 个文件,但最终会为每个文件分别运行 tar 命令,最后我只剩下一个 tar 文件,其中包含 3 个文件中的最后一个(按任何顺序)。我知道我没有正确使用“xargs”,但搜索没有帮助;我发现示例也不起作用。即使是更简单的命令

ls | xargs -I {} tar -cf t.tar {}
Run Code Online (Sandbox Code Playgroud)

最终得到一个 tar 文件,其中只包含该目录中的一个文件。

Dav*_*ing 8

ls -t | head -n 3 | xargs tar -cf t.tar

为我工作。是否有理由需要设置-I标志?