tar: --exclude = ". git": Stat impossible: aucun fichier ou répertoire de ce type

11

Ça me rend fou. Je veux tarun répertoire, mais exclure certains fichiers. Voici ma commande:

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

Bien que la commande ci-dessus fonctionne sur RedHat EL5, elle ne fonctionne pas sur Mac OS 10.8.2. J'ai essayé de remplacer le 'par ", \'et \". J'ai essayé de supprimer les signes égaux. Rien ne fonctionne.

Qu'est-ce que je fais mal?

Randomblue
la source
Utilisation gnutarde Brew, MacPort, etc. Le goudron d'Apple est trop paralysé.
2016

Réponses:

23

Toutes les options doivent être réunies avant les arguments, et l' -findicateur doit précéder le fichier tar:

tar -zcv --exclude = '. git' --exclude = '. gitignore' -f $ NAME- $ VERSION.tar.gz $ NAME- $ VERSION
Flup
la source
Si c'est le cas tar --help, l' --excludeoption apparaît-elle dans l'aide? Je ne connais pas OSX mais peut-être qu'il y a un gtarau lieu du stock tar.
Flup
2
Ah je le vois :) essayez ceci: tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION Le -fdrapeau attend un nom de fichier comme argument suivant.
Flup
Désolé oui, modifié. Je suis nouveau ici, alors soyez indulgent avec moi!
Flup
2
Peut attester que cela fonctionne sur un Mac - 10.9. Cela m'a pris du temps pour trouver la bonne version de cela, c'est pourquoi je laisse mon commentaire ici!
JohnAllen
2

Cela vous donne ce que vous voulez:

tar czvf $NAME-$VERSION.tar.gz $NAME-$VERSION --wildcards --exclude=.git --exclude=.gitignore
Sonde
la source
1

Il semble que vous aimiez filtrer les répertoires méta .git, la manière la plus simple consiste à utiliser --exclude-vcs pour exclure les répertoires du système de contrôle de version:

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

J'ai utilisé "tar (GNU tar) 1.27.1" sur ma machine Linux, il semble que la commande générale BSD de mac (version non GNU) ne supporte pas cette option.

Kayvan Tehrani
la source
Êtes-vous certain que cela fonctionne avec le goudron d'Apple? Voir la tar(1)page de manuel d'Apple . il ne répertorie pas --exclude-vscou --exclude-vcs.
2016
Merci cher @jww pour ton conseil. J'ai modifié ma réponse pour être plus efficace.
Kayvan Tehrani