创建不带文件夹结构的tar文件

7

我需要将多个文件压缩成一个tar文件。由于我需要为许多不同文件夹中的许多文件重复此操作,因此我编写了一个Shell脚本并从父目录启动它。该Shell脚本包含多行类似以下内容的代码:

tar -cf a/b/c/tarfile.tar a/b/c/*

这样会在指定的文件夹中创建一个tar文件,但是在tar文件内部,a/b/c/文件夹结构仍然存在。

我希望所有c/文件中的文件都被放置在tarfile.tar中,而不带有a/b/c/文件夹结构。这是否可能?

1个回答

14

tar -cf a/b/c/tarfile.tar -C a/b/c .将切换到目录a/b/c并读取整个目录(使用.表示,也可以指定特定的文件,但通配符不会达到你的预期效果)。-C <directory> <filelist>模式可以重复使用以处理来自不同位置的其他文件。

根据您提供的示例,另一个可能性是cd a/b/c; tar cf ../../../tarfile.tar *,但这不允许您从不同位置获取多个文件(当然,您仍然可以使用-C,但相对路径必须相应调整)。


谢谢twalberg,我尝试了你的第二个建议,它起作用了。(先进入目录,然后创建tar文件) - ala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接