tar: --exclude = «. git»: не может быть стат: нет такого файла или каталога

11

Это сводит меня с ума. Я хочу tarкаталог, но исключаю некоторые файлы. Это моя команда:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude='.git' --exclude='.gitignore'

Хотя приведенная выше команда работает в RedHat EL5, она не работает в Mac OS 10.8.2. Я попытался замены 'с ", \'и \". Я пытался удалить знаки равенства. Ничего не работает

Что я делаю неправильно?

Randomblue
источник
Используйте gnutarот Brew, MacPort и т. Д. Смола Apple слишком повреждена.
июня

Ответы:

23

Все параметры должны быть вместе перед аргументами, а -fфлаг должен предшествовать файлу tar:

tar -zcv --exclude = '. git' --exclude = '. gitignore' -f $ NAME- $ VERSION.tar.gz $ NAME- $ VERSION
Flup
источник
Если да tar --help, появляется ли эта --excludeопция в справке? Я не знаю OSX, но, возможно, gtarвместо акции есть tar.
Flup
2
А я вижу это :) попробовать это: флаг ожидает имя файла в качестве следующего аргумента. tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION-f
Flup
Извините, да, отредактировано. Я новичок здесь, так терпите меня!
Флюп
2
Могу засвидетельствовать, что это работает на Mac - 10,9. Мне потребовалось некоторое время, чтобы найти правильную версию этого, поэтому я оставляю свой комментарий здесь!
Джон Аллен
2

Это дает вам то, что вы хотите:

tar czvf $NAME-$VERSION.tar.gz $NAME-$VERSION --wildcards --exclude=.git --exclude=.gitignore
зонд
источник
1

Кажется, вам нравится фильтровать мета-каталоги .git, самый простой способ - использовать --exclude-vcs для исключения системных каталогов контроля версий:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude-vsc

Я использовал «tar (GNU tar) 1.27.1» на моей машине с Linux, кажется, что общая команда Mac BSD (не версия GNU) не поддерживает эту опцию.

Кайван Техрани
источник
Вы уверены, что это работает с дегтем от Apple? Смотрите справочную tar(1)страницу Apple . это не список --exclude-vscили --exclude-vcs.
июня
Спасибо, дорогой @jww, за твой намек. Я отредактировал свой ответ, чтобы быть более эффективным.
Кайван Теграни