linux - 使用 .tarignore 文件从 tar 存档中排除目录

标签 linux archive tar gitignore ignore

以类似于 .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/

相关文章:

mysql - 加速 Bash ID3 到 MySQL 的导入

linux - 配置 apache 2.2.21 时出现 gcc 错误

linux - 找到一个文件并打开它进行编辑。如何在 bash shell 中快速完成?

android - 运行系统应用程序时,sharedUserId 给出共享用户不兼容错误

iphone - 如果 Xcode Archiving Utility 显示错误的验证应用怎么办?

mysql - System.nanoTime 作为 Inno DB 表上的主键

linux - 压缩文件和目录

Linux 使用 tar 和 if else 判断是否有文件

ios - 在将应用程序上传到 iOS App Store 之前,代码更改是否会使存档无效?

linux - 使用 -C 选项和通配符的 tar 文件