如何指定 tar 最终结构
How to specify the tar final structure
我有这样的结构:
release/folder1/file1
release/folder2/file2
...
release/folderN/fileN
我想将所有这些文件夹(folder1、folder2 ... folderN)包含在一个 tar 文件中。
关键是我希望这些文件夹位于另一个名为 MYAPP 的目录中的最终 tar 中,因此当您打开 tar 时,您可以看到:
MYAPP/folder1/file1
MYAPP/folder2/file2
...
MYAPP/folderN/fileN
如何在不重命名原始 "release" 目录 and/or 创建新目录的情况下实现此目的。
这有可能仅在 tar 过程中实现吗?
谢谢
添加
--transform=s@^release/@MYAPP/@
到您的 tar
命令行。
--transform
命令行的参数是一个命令,与文件路径一起传递给sed
,然后将其存储在存档中(使用tar -tf
显示存档中存储的文件的名称)。
命令s@^release/@MYAPP/@
告诉sed在字符串(^
)的开头搜索(s
)release/
并替换为MYAPP/
.
需要搜索和替换字符串末尾的 /
以确保组件的完整名称是 release
(而不是替换 release.txt
)。 @
字符只是一个正则表达式分隔符。通常 /
用作正则表达式分隔符,但我们更喜欢在这里使用不同的分隔符以避免需要转义 /
(因为它用于搜索和替换字符串)。
我有这样的结构:
release/folder1/file1
release/folder2/file2
...
release/folderN/fileN
我想将所有这些文件夹(folder1、folder2 ... folderN)包含在一个 tar 文件中。 关键是我希望这些文件夹位于另一个名为 MYAPP 的目录中的最终 tar 中,因此当您打开 tar 时,您可以看到:
MYAPP/folder1/file1
MYAPP/folder2/file2
...
MYAPP/folderN/fileN
如何在不重命名原始 "release" 目录 and/or 创建新目录的情况下实现此目的。 这有可能仅在 tar 过程中实现吗?
谢谢
添加
--transform=s@^release/@MYAPP/@
到您的 tar
命令行。
--transform
命令行的参数是一个命令,与文件路径一起传递给sed
,然后将其存储在存档中(使用tar -tf
显示存档中存储的文件的名称)。
命令s@^release/@MYAPP/@
告诉sed在字符串(^
)的开头搜索(s
)release/
并替换为MYAPP/
.
需要搜索和替换字符串末尾的 /
以确保组件的完整名称是 release
(而不是替换 release.txt
)。 @
字符只是一个正则表达式分隔符。通常 /
用作正则表达式分隔符,但我们更喜欢在这里使用不同的分隔符以避免需要转义 /
(因为它用于搜索和替换字符串)。