【问题标题】:Exclude directories from tar archive with a .tarignore file使用 .tarignore 文件从 tar 存档中排除目录
【发布时间】:2017-01-23 16:20:09
【问题描述】:

以类似于.gitignore 的方式,是否可以在子目录中将.tarignore 文件从存档中排除

tar cfjvh backup.tar.bz2 .

(我知道tar--exclude 参数,但这不是我想要的)。

【问题讨论】:

    标签: linux archive tar gitignore ignore


    【解决方案1】:

    使用--exclude-ignore=.tarignore 选项会导致Tar 以与git 使用.gitignore 文件类似的方式使用.tarignore 文件。使用与.gitignore 文件中通常使用的语法相同的语法,因此,如果您想忽略特定目录中的所有子目录和文件,请将带有*.gitignore 文件添加到该目录。例如:

    $ find dir
    dir
    dir/a
    dir/b
    dir/c
    dir/dir1
    dir/dir1/1a
    dir/dir1/1b
    dir/dir2
    dir/dir2/2a
    dir/dir2/2b
    $ echo "*" > dir/dir1/.tarignore
    $ tar -c --exclude-ignore=.tarignore -vjf archive.tar.bz2 dir
    dir/
    dir/a
    dir/b
    dir/c
    dir/dir1/
    dir/dir2/
    dir/dir2/2a
    dir/dir2/2b
    

    如果您想忽略所有包含空 .tarignore 文件的目录,请查看 --exclude-tag-all=.tarignore 选项。

    $ find dir
    dir
    dir/a
    dir/b
    dir/c
    dir/dir1
    dir/dir1/1a
    dir/dir1/1b
    dir/dir2
    dir/dir2/2a
    dir/dir2/2b
    $ touch dir/dir1/.tarignore
    $ tar -c --exclude-tag-all=.tarignore -vjf archive.tar.bz2 dir
    tar: dir/dir1/: contains a cache directory tag .tarignore; directory not dumped
    dir/
    dir/a
    dir/b
    dir/c
    dir/dir2/
    dir/dir2/2a
    dir/dir2/2b
    

    还可以查看 --exclude-tag=--exclude-tag= 选项,它们是行为略有不同的变体。

    【讨论】:

      【解决方案2】:

      你可以这样做

      $ COPYFILE_DISABLE=true tar -c --exclude-from=.tarignore -vzf archiveName.tar.gz
      

      细分:-

      • COPYFILE_DISABLE=true 的原因是确保以._ 开头的文件不包含在创建的.tar 文件中。如果您经常进行tar 操作,请启用它在您的 Mac 上将export COPYFILE_DISABLE=true 永久添加到~/.bash_profile
      • –exclude-from=.tarignore: 忽略.tarignore 中列出的所有文件和文件夹

      你的.tarignore可以有以下内容,这里是我的

      $ cat .tarignore
      .DS_Store
      .git
      .gitignore
      

      【讨论】:

      • 谢谢,但这似乎不是我想要的。我只想在每个要绕过的目录中放置一个 empty .tarignore 文件。你明白我的意思吗?每个文件夹中可能会有 10 或 20 个这样的 .tarignore 文件,这些文件应该被忽略。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 2021-07-31
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多