首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tar:添加当前目录下的所有文件和目录,包括.svn等

tar:添加当前目录下的所有文件和目录,包括.svn等
EN

Stack Overflow用户
提问于 2010-09-06 21:23:12
回答 15查看 269.2K关注 0票数 104

我尝试tar.gz一个目录并使用

代码语言:javascript
复制
tar -czf workspace.tar.gz *

生成的tar包括子目录中的.svn目录,但不包括当前目录中的目录(因为*在传递给tar之前只展开为‘可见’文件

我试过了

tar -czf workspace.tar.gz .,但我收到了一个错误,因为‘’在阅读过程中发生了变化:

代码语言:javascript
复制
tar: ./workspace.tar.gz: file changed as we read it

有没有什么技巧可以让*匹配一个目录中的所有文件(包括点前缀)?

(在Linux SLES-11上使用bash (2.6.27.19) )

EN

回答 15

Stack Overflow用户

发布于 2010-09-07 00:01:33

不要在打包的目录中创建tar文件:

代码语言:javascript
复制
tar -czf /tmp/workspace.tar.gz .

除了解压时,它将解压当前目录中的所有文件。更好的做法是:

代码语言:javascript
复制
cd ..
tar -czf workspace.tar.gz workspace

或者,如果您不知道所在目录的名称:

代码语言:javascript
复制
base=$(basename $PWD)
cd ..
tar -czf $base.tar.gz $base

(这假设您没有通过符号链接到达您所在的位置,并且shell不会通过符号链接向后跳转来尝试猜测您-在这方面,bash是不值得信任的。如果您必须担心这一点,可以使用cd -P ..来进行物理目录更改。在我看来,这不是默认的行为,这很愚蠢--至少,对于那些对cd ..从来没有任何替代意义的人来说,这是令人困惑的。)

讨论中的一条评论是:

我..。需要排除顶层目录,我...需要将tar放在基本目录中。

注释的第一部分没有多大意义-如果tar文件包含当前目录,那么当您从该归档文件中提取文件时,将不会创建它,因为根据定义,当前目录已经存在(除非在非常奇怪的情况下)。

评论的第二部分可以通过以下两种方式之一进行处理:

GNU :在其他地方创建文件- /tmp是一种可能的位置-然后在文件被complete.

  • Or:之后将其移回原始位置。如果您使用的是GNU

  • ,请使用--exclude=workspace.tar.gz选项。=后面的字符串是一个模式--本例是最简单的模式--一个精确匹配。如果您在与建议相反的情况下在当前目录中工作,则可能需要指定--exclude=./workspace.tar.gz;如果您正在按照建议进行上一级工作,则可能需要指定--exclude=workspace/workspace.tar.gz。如果要排除多个tar文件,请像在--exclude=./*.gz.

中那样使用'*

票数 93
EN

Stack Overflow用户

发布于 2016-09-19 17:21:38

有几个步骤需要采取:

  1. *替换为.也可以包含隐藏文件。
  2. 要在同一目录中创建存档,可以使用--exclude=workspace.tar.gz排除存档本身。
  3. 要防止在尚未创建存档时出现tar: .: file changed as we read it错误,请确保它存在(例如使用touch),以便--
  4. 与存档文件名匹配。(不匹配文件不存在)

将这些结果合并到以下脚本中:

代码语言:javascript
复制
touch workspace.tar.gz
tar -czf workspace.tar.gz --exclude=workspace.tar.gz .
票数 56
EN

Stack Overflow用户

发布于 2010-09-06 21:30:28

如果你真的不想在tarball中包含top目录(这通常不是一个好主意):

代码语言:javascript
复制
tar czf workspace.tar.gz -C /path/to/workspace .
票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3651791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档