tar: --exclude = ". git": Не вдається статистика: Немає такого файлу чи каталогу


11

Це зводить мене з розуму. Я хочу tarв каталог, але виключаю деякі файли. Це моя команда:

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

Хоча вищезазначена команда працює на RedHat EL5, вона не працює на Mac OS 10.8.2. Я спробував заміни 'з ", \'і \". Я спробував зняти знаки рівності. Нічого не працює.

Що я роблю неправильно?


Використання gnutarвід Brew, MacPort та ін. Дьоготь Apple дуже надто калі.
jww

Відповіді:


23

Усі параметри повинні бути разом перед аргументами, і -fпрапор повинен передувати файлу tar:

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

Якщо ви це зробите tar --help, чи з’являється --excludeопція у довідці? Я не знаю OSX, але, можливо, є gtarзамість запасу tar.
Flup

2
А я бачу це :) спробувати це: прапор очікує ім'я файлу в якості наступного аргументу. tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION-f
Flup

Вибачте, так, відредаговано. Я тут новий, тож потерпіть із собою!
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, схоже, загальна команда BSD Mac (не версія GNU) не підтримує цю опцію.


Ви впевнені, що це працює з дьогтем Apple? Див. tar(1)Сторінку людини Apple . це не список --exclude-vscабо --exclude-vcs.
jww

Дякую, дорогий @jww, за вашу підказку. Я відредагував свою відповідь, щоб бути більш ефективною.
Кайвань Техерані
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.