这是我在MacOSX-Machine上的当前目录结构:
kuli at fumpenwuppich in /volume/workspace on master [!?$]
$ ls -l
total 0
drwxr-xr-x 4 kuli staff 136 Nov 28 16:02 conf
drwxr-xr-x 3 kuli staff 102 Nov 28 16:23 html
drwxr-xr-x 3 kuli staff 102 Nov 28 13:06 legacy
drwxr-xr-x 11 kuli staff 374 Nov 28 15:41 vagrant.nginx
我想创建一个tar.bz2文件作为备份,但没有子目录“遗产”。
我尝试了很多东西:
tar cfjv --exclude 'legacy' ~/Dropbox/backup/kuli.20151128.tar.bz2 .
tar cfjv --exclude='legacy' ~/Dropbox/backup/kuli.20151128.tar.bz2 .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude legacy .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude=legacy .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude='legacy' .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude './legacy' .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude='./legacy' .
tar cfjv ~/Dropbox/backup/kuli.20151128.tar.bz2 --exclude 'workspace/legacy' .
等等。我也尝试将exlude-switch放在命令的末尾。
但没有任何效果。所有命令都会忽略exclude命令。
如何实现这一目标?
答案 0 :(得分:9)
根据man page选项进入文件和目录列表:
tar {-c} [options] [files | directories]
此外,-f
和--exclude
选项需要参数:-f file
和--exclude pattern
。
所以,在你的情况下,这应该有效:
tar cjv --exclude 'legacy' -f ~/Dropbox/backup/kuli.20151128.tar.bz2 .
答案 1 :(得分:8)
奇怪的是,在将参数顺序重新排列为
之前,我无法在Mac OS X(版本10.11.5)上运行此功能tar --exclude' / subdir1 / ' --exclude' / subdir2 / ' -zcvf" mybackup.tar.gz" ./myfolder