Macos 如何排除OSX上带有TAR的目录?

Macos 如何排除OSX上带有TAR的目录?,macos,backup,archive,tar,Macos,Backup,Archive,Tar,这是我在MacOSX计算机上的当前目录结构: 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

这是我在MacOSX计算机上的当前目录结构:

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文件作为备份,但不包含子目录“legacy

我尝试了多种方法:

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开关放在命令的末尾

但什么都没用。所有命令都会忽略“排除”命令

如何实现这一点?

根据选项转到文件和目录列表之前:

tar{-c}[选项][文件|目录]

另外,
-f
--exclude
选项需要参数:
-f file
--exclude pattern

因此,在您的情况下,这应该是可行的:


tar cjv——排除“legacy”-f~/Dropbox/backup/kuli.20151128.tar.bz2.

奇怪的是,我无法在Mac OS X(10.11.5版)上使用它,直到我将参数顺序重新安排为


tar--exclude'/subdir1/'--exclude'/subdir2/'-zcvf“mybackup.tar.gz”。/myfolder

不是专家,但我相信这是有道理的。f in-zcvf与f@baf在其答案中使用的相同。如果尝试tar-zcvf--exclude'./a/b'foo.tar.gz./a/您的选项就是f参数应该在的位置。tar-zcv--exclude./a/b'-f foo.tar.gz./a也起作用。“f”是一个选项,后面必须跟它的参数。“-f”引入目标文件的名称;开关“f”和它引入的参数之间不能有“-”类型选项。交换机可以捆绑,如“cvf”或“-cvf”。显然,“f”不必是一组开关中的最后一个开关,但我个人永远不会像问题中那样使用“cfjv”(“f”后面跟着两个开关,“j”和“v”),我总是让“f”成为一组开关中的最后一个开关,如“cjvf”;这将“f”与其引入的参数连接起来。对不起@baf,您误读了“man”页面。符号“[files | directories]”表示要包含在存档中的文件列表;这与“-f”无关。“f”是用于命名目标文件的选项;作为一个选项,它带有占位符符号“[options]”。没有关于订购的指示。我正在测试达尔文19.6.0,也就是macOS Catalina 10.15.7,我无法重现问题中的错误;“--exclude”的功能不依赖于顺序。然而,我确实在从“@IAM_AL_X”中获取“-exclude”文件时遇到了问题,我没有误读。我指的是
文件
,它是
-f
选项的强制性参数,而不是
文件|目录
。另一件事是您正在使用现代macOS版本,它使用不同的tar版本。这个回答对你没有帮助。