创建tar存档时添加目录

时间:2016-12-06 07:53:46

标签: linux bash tar create-directory

我想tar一些文件(和目录),但想要创建这些文件应该驻留的其他目录。

例如,对于以下目录结构:

myproject
  + file1
  + file2
  + subdir1
    + file3

我进入myproject目录并想要创建tar存档

tar czf myproject.tgz --place-into-dir myproject-1.0 file2 subdir1

接收包含以下内容的tar档案:

myproject-1.0
  + file2
  + subdir1
    + file3

我正在寻找像我的虚构" - place-into-dir"以上。 因此,文件不应直接放入存档中,而应放入仅在tar存档中创建的附加目录中。

我想避免首先创建该目录,将所有文件复制到该目录,然后再次删除它们以创建tar存档。

2 个答案:

答案 0 :(得分:3)

GNU tar有--transform选项:

  

--transform= EXPRESSION --xform= EXPRESSION

     

使用sed替换EXPRESSION来转换文件名

这可以帮到你:

tar --transform 's/^myproject$/\0-1.0/' -czf myproject.tgz myproject

答案 1 :(得分:3)

您可以使用--transform

在存档内动态创建目录
tar czf myproject.tgz --transform 's,^,myproject-1.0/,' file2 subdir1