tar:--exclude =“。git”:statできません:そのようなファイルまたはディレクトリはありません


11

これは私を夢中にさせます。tarディレクトリにしたいが、いくつかのファイルを除外します。これは私のコマンドです:

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

上記のコマンドはRedHat EL5では機能しますが、Mac OS 10.8.2では機能しません。私が交換しようとしている'"\'\"。等号を削除してみました。何も動作しません。

私は何を間違えていますか?


gnutarBrew、MacPortなどから使用します。Appleのtarは機能しません。
jww

回答:


22

引数の前にすべてのオプションをまとめる必要があり、-fフラグをtarファイルの前に置く必要があります。

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

その場合はtar --help、ない--excludeオプションがヘルプに表示されますか?私はOSXを知りませんが、おそらくgtar株式の代わりにありますtar
フラップ

2
ああ、私はそれがこれを試してください:)参照してください。 フラグは次の引数としてファイル名を期待しています。tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION-f
フラップ

はい、編集しました。私はここに新しいので、私と一緒に耐えてください!
フラップ

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

Linuxマシンで「tar(GNU tar)1.27.1」を使用しましたが、macのBSD General Command(非GNUバージョン)はこのオプションをサポートしていないようです。


これがAppleのtarで機能することは確かですか?Appleのtar(1)マニュアルページを参照してください。リスト--exclude-vscまたはしません--exclude-vcs
jww

ヒントをありがとう@jww 回答をより効果的に編集しました。
ケイバンTehrani
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.