GitメタデータなしでのTarballing 質問する

GitメタデータなしでのTarballing 質問する

私のソース ツリーには Git ソース コントロールを使用しているディレクトリがいくつか含まれており、Git メタデータまたはカスタム ログ ファイルへの参照を除外してツリー全体を tarball にする必要があります。

find/egrep/xargs/tar を組み合わせて使用​​してみようと思いましたが、どういうわけか tar ファイルには .git ディレクトリと *.log ファイルが含まれています。

私が持っているのは次のものです:

find -type f . | egrep -v '\.git|\.log' | xargs tar rvf ~/app.tar

誰か私の誤解を説明してくれませんか? find と egrep がフィルタリングしているファイルを tar が処理するのはなぜですか?

他のテクニックも検討します。

ベストアンサー1

ファイル数が複数のxargsコマンドに増えると、驚くことになります。まず最初のファイルの tar ファイルを作成し、次に同じ tar ファイルを残りのファイルで上書きします。

GNU にはこの問題を解決するオプションがtarあります:--exclude

tar cvf ~/app.tar --exclude .git --exclude "*.log" .

おすすめ記事