ディレクトリの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

おすすめ記事