以类似于 .gitignore
的方式,是否可以在子目录中将 .tarignore
文件从存档中排除
tar cfjvh backup.tar.bz2 .
(我知道 tar
的 --exclude
参数,但这里不是我想要的)。
最佳答案
使用 --exclude-ignore=.tarignore
选项导致 Tar 使用 .tarignore
文件的方式类似于 git 使用 .gitignore
文件的方式。使用与通常在 .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=
选项,它们是行为略有不同的变体。
关于linux - 使用 .tarignore 文件从 tar 存档中排除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39514510/