我试图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}`
我已经四处寻找,但似乎无法找到解决方案,
有人有任何想法吗?
由于
答案 0 :(得分:2)
如何使路径相对于正确的路径的答案是使用-C
tar选项。这是一个大写字母C.您传递的参数是您希望tar从中开始相对的目录。
所以你会这样做:
tar -zcvf /x/y/z/ParentFolder.tar.gz -C /x/y/z ParentFolder
但是......你也应该三思而后行。你应该没问题,只需要包含dir。
答案 1 :(得分: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}