将 tar 文件放在子目录中

8 tar archiving

我有一个如下所示的目录设置:

folder_x
file.y
file.z
Run Code Online (Sandbox Code Playgroud)

我想创建一个 tar 文件,以便在提取时结构看起来像这样:

dir_q/folder_x
dir_q/file.y
dir_q/file.z
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用它来工作tar?作为参考,我正在使用的当前命令是:

tar -czf archive.tar.gz file.y file.z folder_x
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 10

我从未使用过 --transform 选项,但我认为它可以满足您的需求:

tar -czf archive.tar.gz --transform 's,^,dir_q/,' file.y file.z folder_x
Run Code Online (Sandbox Code Playgroud)

实现,代替/作为分隔符的使用,所以我们可以添加一个尾部斜杠。

  • tar --transform 在 MacOS 上似乎不起作用 (2认同)

小智 1

如果您不介意创建新目录...

mkdir dir_q;tar -C $_ -xzvf archive.tar.gz

或者,创建一个新目录,将文件解压缩到该目录,然后从父目录重新压缩它,以将其名称包含在提取的版本中。这样你就不必记住一些超长的调用。