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/。这可能吗?

4

1 回答 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,但必须相应地调整相对路径。

于 2012-08-27T15:04:30.637 回答