小编Cod*_*der的帖子

当 shell 有太多文件名无法在一行上展开时,如何制作压缩的 tar?

通常我会做这样的事情:

tar -czf archive.tar.gz *.csv
Run Code Online (Sandbox Code Playgroud)

但是当目录中有太多文件供 shell 在一行上展开时,这不起作用。

在这些情况下,我通常会求助于使用find. 就像是:

find /path -name '*.csv' -exec tar -rf "./archive.tar.gz" {} +;`
Run Code Online (Sandbox Code Playgroud)

但这似乎只有在我不包含该-z选项时才有效,因为您无法附加到压缩档案,并且使用-c代替-r将覆盖第一个档案,因为 find 多次运行 tar 。

我能想到的唯一其他解决方案是使用find(如上)创建一个 .tar 文件,然后使用第二个命令来压缩它。有没有更好的方法来处理这样的情况?

我正在使用 Ubuntu Linux。

linux bash command-line tar find

7
推荐指数
2
解决办法
6675
查看次数

标签 统计

bash ×1

command-line ×1

find ×1

linux ×1

tar ×1