我必须将多个文件压缩到一个tar-File。因为我必须对许多不同文件夹中的许多文件重复这一点,所以我编写了一个shell脚本并从父目录启动它。 shell脚本包含多行,如下所示:
tar -cf a/b/c/tarfile.tar a/b/c/*
这会在指定的文件夹中创建一个tar文件,但在tar-File中,/ b / c /的文件夹结构仍然存在。
我想要的是c /中的所有文件都放在tarfile.tar中,没有文件夹结构a / b / c /。这可能吗?
答案 0 :(得分: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
,但相对路径必须相应调整。