特定のディレクトリ(もちろんサブディレクトリも含む)の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
提供OSMactar
gnutar
pax
._*
他のシステムの対応するアーカイブツールは、これらのファイルに対する特別な処理を知らないため、そのファイル._*
を通常のファイルに抽出します。これらのファイルは他のシステムではまったく役に立たないため、しばしば「ジャンクファイル」と見なされます。したがって、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