tar exclude single files/directories, not patterns
我正在使用
例如,具有以下目录树("bla"是普通文件):
1 2 3 4 5 6 7 | # find . ./sys ./sys/bla ./foo ./foo/sys ./foo/sys/bla |
我想排除
我似乎找不到一个能做到这一点的
1 2 | # tar cvf /dev/null * --exclude=sys foo/ |
或者…
1 2 3 4 5 6 | # tar cvf /dev/null * --exclude=/sys foo/ foo/sys/ foo/sys/bla sys/ sys/bla |
有什么想法吗?(Linux Debian 6)
您可以指定排除模式的绝对路径,这样其他
1 | tar --exclude=/sys --exclude=/proc / |
在这种情况下,您可能需要使用:
1 | --anchored --exclude=sys/\* |
因为如果您的tar没有显示前导的"/",则说明过滤器有问题。
使用tar,可以通过将标记文件放在任何应跳过的目录中来排除目录。
创建标记文件,
1 2 | touch /sys/.exclude_from_backup touch /proc/.exclude_from_backup |
然后,
1 | tar -czf backup.tar.gz --exclude-tag-all=.exclude_from_backup * |