用焦油包装

用焦油包装

我正在尝试打包文件:

file1
folder2/hello
folder2/world
file3

到 tar 文件中,以便将它们封装在自定义文件夹中,因此tar -tvf archive.tar显示为:

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

目前为了解决这个问题,我是:

  • file1创建、folder2和的存档(x) file3
  • 创建mycustomfolder文件夹。
  • 将存档(x)提取到mycustomfolder
  • 创建一个档案(y)mycustomfolder

我忍不住想他们可能是这样做的一步或者更好的方法?

答案1

如果您希望存档提取到自己的目录中(这通常更好,因为不这样做的目录可能会造成混乱),只需创建目录,然后将内容树移动/复制到其中,这样您就可以了,如下所示在你的第二个例子中:

mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3

然后tar -cvf myarchive.tar mycustomfolder。提取,tar -xvf myarchive.tar

如果您不想先创建目录,您可以转换文件名并附加目录前缀:

tar --xform="s%^%mycustomfolder/%" -cvf myarchive.tar file1 folder2 file3

转换(请参阅man tar)使用sed语法;我使用%而不是/分隔符,因为s/^/mycustomerfolder\//创建了一个名为mycustomfolder\(==奇怪行为IMO)的文件夹,但s/^/mycustomfolder//(正确地)是“无效的转换表达式”。

相关内容