ディレクトリのtarアーカイブを作成しますか(隠しファイルを除く)?

ディレクトリのtarアーカイブを作成しますか(隠しファイルを除く)?

特定のディレクトリ(もちろんサブディレクトリも含む)のtarアーカイブを作成したいと思います。ただし、tarコマンドを使用してこれを実行すると、次の埋め込みファイルの一覧が表示されます。

Calendar_final/._style.css

Calendar_final/style.css

ご覧のとおり、同じファイルには2つのバージョンがあります。これはすべてのファイルに適用され、多くのファイルがあります。 tarアーカイブから._プレフィックスを含む一時ファイルを除外する方法は?

答え1

あなたはあなたのコメントでMac OS Xシステムで作業しているとマークしました。これはこれらのファイルの目的にとって重要な手がかりです._*

これらの._*アーカイブ項目は大きな塊で構成されています。アップルダブルスそのファイル(プレフィックスのないファイル)に関する._追加情報を含むデータ。 Mac OS X専用です。ファイルのコピー(3)関数系列。 AppleDouble blobはアクセス制御データ(ACL)と拡張属性(通常は発見者フラグと「リソースフォーク」ですが、xattrsはあらゆる種類のデータを格納するために使用できます。

システムbsdtar提供OSMactargnutarpax._*

他のシステムの対応するアーカイブツールは、これらのファイルに対する特別な処理を知らないため、そのファイル._*を通常のファイルに抽出します。これらのファイルは他のシステムではまったく役に立たないため、しばしば「ジャンクファイル」と見なされます。したがって、Mac OS X以外のシステムで作成されたアーカイブにで始まる一般的なファイルが含まれている場合、._Mac OSは

ただし、システム提供のMac OS Xアーカイバが他のUnixyシステムと同じように動作するようにする文書化されていない(?)方法があります。これはCOPYFILE_DISABLE環境変数です。この変数を任意の値に設定すると(空の文字列であっても)、アーカイブが._*アーカイブファイルに関連する拡張情報を表すためにアーカイブメンバーを作成するのを防ぐことができます。また、その存在は、アーカイバがそのようなアーカイブメンバーを拡張情報として解釈しようとするのを防ぎます。

COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …

このように頻繁に作業するには、シェルの初期化ファイルでこの変数を設定できます。

# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE

その後、(拡張情報を保存/復元するために)機能を再度有効にする必要がある場合は、個々のコマンドの変数を「オフにする」ことができます。

(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)

Mac OS X 10.4のアーカイバは他の環境変数を使用しますが、同様のことを行います。 COPY_EXTENDED_ATTRIBUTES_DISABLE

答え2

これは働きます:

tar zcf calendar.tgz "a calendar_final" --exclude '.*'

答え3

フレデリック・ドウィットGNU tar(Linux、Cygwin、FreeBSD、OSX、その他のシステム用)では機能しますが、NetBSD、OpenBSD、Solarisなどの他のシステムでは機能しないソリューションが提供されています。

POSIXはコマンドを指定せずtar(UNIXバリアント間で多様であったため)導入されました。pax代わりにコマンドを発行してください。このオプションは、-wアーカイブ(-r抽出)を作成し、-xアーカイブ形式を選択することを意味します。このオプションは、パスがデフォルトの-s '!BRE!!'正規表現BREと一致するすべてのファイルを除外します。

pax -w -x ustar -s '!^.*/\..*$!!' calendar_final >calendar_final.tar

答え4

最新バージョンは、--no-xattrsMacOS BSD tarフラグを使用してtarballを生成します。

tar --no-xattrs -c -f <tarfilename> [file list/glob/whatever]

関連情報