这是我正在运行的当前命令:
tar --directory=/Users/joe/images -czvf images.tgz dir1/image1.jpg dir2/image2.jpg
如您所见,这是使用/Users/joe/images
根目录,然后包含该根下不同目录的图像。
但是,我需要能够将这些图像包含在 tar 内的公共父级下,这样如果我随后打开该 tar 文件,我将看到以下目录结构:
- 常见/image1.jpg
- 常见/image2.jpg
是否有一个标志或方法来执行此命令,允许我指定文件应位于的“父”目录?
答案1
您--directory
建议您使用 GNU 或现代 BSD tar。
使用 GNU tar
:
tar --directory=/Users/joe/images --transform='s|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
使用 BSD tar:
tar --directory=/Users/joe/images -s'|[^/]*|common|' \
-czvf images.tgz dir1/image1.jpg dir2/image2.jpg
想法是相同的:将引导路径组件替换为common
.
请注意,该替换也适用于其中的符号链接目标(您可以使用S
替换标志来禁用它)。