将目录转换为被压缩的目录中的文件

将目录转换为被压缩的目录中的文件

我有一个挂载点,/media/xvdf1我使用它与用户/组一起bindfs挂载。我希望备份它,但其他分区上没有足够的空间。tarring 之后,应使用将文件上传到 S3 。/var/lib/jenkins/jobsjenkinsaws s3 cp

我的问题是,如果我使用 tar 来创建档案,它会尝试将其写入的文件打包成 tar。

有没有办法让 tar 避免对自己的输出进行 tarring ?

答案1

如果需要的话你可以使用--exclude=pattern,但我不确定你需要在哪里做这件事。

运行以下命令:

tar -cf test.tar .

我收到消息:

tar: ./test.tar: file is the archive; not dumped

但也许这只是一个 GNU 扩展,尽管我的 BSD 版本给出了类似的

tar: ./test.tar: Can't add archive to itself

不过,你可以明确地告诉它忽略它

tar -cf test.tar --exclude=./test.tar .

答案2

我也遇到了类似的问题。

在示例中,它可能像这样工作

tar -cf test.tar .

您要求tar存档.,然后tar创建一个“空”文件test.tar来存储内容。但观点test.tar也是目录的一部分.。这看起来有点像无限递归。无论如何,这tar似乎很聪明,可以防止这种情况发生,因为在大多数情况下这不是你想要的。

除了使用--exclude,你还可以尝试

tar -cf test.tar ./*

这样,您要求tar将(几乎)所有文件存档在. 命令运行,注意test.tar不包括。

相关内容