Macでautoconfスクリプトを作成します。 tarが実行されると、これらの._foobarの名前がすべてアーカイブに入れられます。
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpr
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpr
現在起こっているのは、AppleのHFSファイルシステムがファイルのプロパティを._foobarの名前に入れて、別のMacシステムで復元できるようにすることです。しかし、私はそれらを望んでいません---彼らは私にとってただのジャンクです。それらを抑制する方法はありますか?
別の質問への回答 ごとに、文書化されていない(?)環境変数COPYFILE_DISABLEを設定して、システム提供のプログラム(tarを含む)のいくつかを防ぐことができます._*
アーカイブメンバーに特別な意味を与えることから。特に、次のことを防止します。
拡張属性データ(リソースフォークを含む)を._*
アーカイブメンバーに格納する
(つまり、Mac OS Xで作成されたが他のシステムでの使用を目的としたアーカイブを「汚染」しない)、および
._*
のような名前のアーカイブメンバーから拡張属性またはリソースを抽出しようとしています
(つまり、他のシステムのアーカイブの._*
アーカイブメンバーを誤って解釈しないでください)。
環境変数に使用する値は重要ではありません(空の文字列でもかまいません)。 0
、false
などの値は、機能を再度有効にしません。重要なのは、変数が設定されているかどうかだけです(機能を再度有効にするには、変数を「設定解除」する必要があります)。
Bourneスタイルのシェル(sh、ksh、bash、zshなど)コマンドに追加の環境変数をプレフィックスします。
COPYFILE_DISABLE=1 tar cf new.tar …
問題が頻繁に発生する場合は、シェルの初期化ファイルの1つにこの変数を設定してエクスポートすることをお勧めします。
# turn off special handling of ._* files in tar, etc.
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
必要に応じて、個々のコマンドの変数を設定解除できます。
(unset COPYFILE_DISABLE; tar cf somefile.tar …)
このMac OS X 10.6システムでは、次のコマンドはすべてCOPYFILE_DISABLEについて知っているようです。
/usr/bin/tar
(bsdtar
へのシンボリックリンク)/usr/bin/bsdtar
/usr/bin/gnutar
/bin/pax
COPYFILE_DISABLEは、Mac OS X 10.5で開発されました。 10.4をサポートする必要がある場合は、同じように機能するCOPY_EXTENDED_ATTRIBUTES_DISABLEがあります。
専門家ではありませんが、少しグーグルでこれを見つけました: http://www.ofzenandcomputing.com/zanswers/3422
そしてこれ: http://hintsforums.macworld.com/archive/index.php/t-28703.html
2番目のコマンドは、スクリプトに組み込むことができるようです。リソースフォークファイルの作成を防ぐことはできないかもしれませんが、後で自動的に削除することができます。
編集:私はこれが悪い結果をもたらすかもしれないと述べるべきでした、あなた自身の責任で使用してください。
独自のtar
をコンパイルするか、可能であればMacportsまたはFinkからインストールしてみてください(Homebrewにはありません)。 「運」がいくらかあれば、OS Xメタデータを無視し、それらのファイルの作成をスキップする必要があります。