tarに「._」ファイルがたくさんあります。

tarに「._」ファイルがたくさんあります。

Linuxシステムでtarが作成されました。このtarの一部を別のLinuxシステムにアップロードする必要があります。 tarファイル全体はサイズが大きく、アップロードに数時間かかります。私は今Mac OSXコンピュータを使用していますが、これが私の質問です。

  1. tarの圧縮をフォルダに解凍し、新しいサーバーにアップロードするために必要なものを見つけました。
  2. アップロードしたいものだけを含む小さなtarを作成しました。
  3. アップロード後、新しいLinuxシステムに解凍されました。
  4. サーバーを見ると._ファイルがいっぱいですね。アップロードされたすべてのファイルには、、、、...._などのファイルがあります。text1.txt._text1.txttext2.txt._text2.txt

OSXには、これらのファイルがtarに含まれています。

私はこれを試しました

tar --exclude='._*' -cvf newTar  . 

違いなし。

SSH経由で新しいサーバーにアクセスできなくなりました。

この問題を解決するにはどうすればよいですか?きれいなtar.gzファイルを生成するには?

答え1

._ファイルは、bsdtarOS XがOS X固有の拡張属性とリソースフォークを処理する方法です。 (これはAppleDoubleというメカニズムで、実際にはTARアーカイブにのみ適用されるのではなく、MacOSリソースフォークやFinder情報を保存するための基本的なメカニズムがないさまざまな保存形式にあります。)

tarファイルに追加されないようにするには、COPYFILE_DISABLE=1環境変数としてtarに渡すことができます。

COPYFILE_DISABLE=1 tar cf newTar.tar /your/files

答え2

私が理解したtar --exclude='._*' -cvf newTar .のはうまくいくはずです。 Finderは._*ファイルを生成しますが、newTar含めないでください。

ただし、パススルーモードで tar を呼び出すと、これらのファイルを完全に無視できます。たとえば、oldTar次のファイルのみをコピーするには、some/path次のようにします。

tar -cf newTar --include='some/path/*' @oldTar

答え3

「._*」で始まるファイルは、Apple固有の場所表示ファイルです。この投稿同じページによると、OSX端末にログインしても明らかに削除できません。 Apple以外のオペレーティングシステムにファイルをアップロードし、ファイルを削除してから再パッケージする必要があります。これが唯一の解決策のようです。

関連情報