1

我试图 tar 一组子文件夹,然后通过 ruby​​ 脚本 tar 其父文件夹。

结构如下:

/x/y/z/ParentFolder/Subfolder1
/x/y/z/ParentFolder/Subfolder2
/x/y/z/ParentFolder/Subfolder3
/x/y/z/ParentFolder/Subfolder4

所以我想要结束的是 Subfolder1.tar.gz、Subfolder2.tar.gz、Subfolder3.tar.gz、Subfolder4.tar.gz 都包含在 ParentFolder.tar.gz 中。

我目前的问题是我能够用它的子文件夹对父文件夹进行 tar,但它的结构仍然是 /x/y/z/ParentFolder/SubFolder1----4

tarParentFolder = "tar -zcvf /x/y/z/ParentFolder.tar.gz /x/y/z/ParentFolder 2>/dev/null"

`#{tarParentFolder}`

我已经四处寻找,但似乎无法找到解决方案,

有人有什么想法吗?

谢谢

4

2 回答 2

2

如何使路径相对于正确路径的答案是使用-Ctar 选项。那是大写的 C。您传递的参数是您希望 tar 相对启动的目录。

所以你会这样做:

tar -zcvf /x/y/z/ParentFolder.tar.gz -C /x/y/z ParentFolder

但是......你也应该三思而后行将焦油放入焦油中。只需将包含的目录涂上焦油就可以了。

于 2013-05-05T18:04:13.887 回答
1

要创建包含多个文件/文件夹的 tar 档案,请使用以下命令:

$ mkdir f1 f2
$ tar -czf tar.tgz f1 f2 # creates the tar
$ tar -tzf tar.tgz       # lists tar contents
f1/
f2/
f3/
$

所以你应该写这样的东西:

tar -zcvf /x/y/z/ParentFolder.tar.gz /x/y/z/Subfolder{1,2,3,4}
于 2013-05-05T17:55:29.450 回答