Linuxマシンで生成されたtarを持っています。そのtarの一部を別のLinuxマシンにアップロードする必要があります。完全なtarは巨大で、アップロードに数時間かかります。私は今Mac OSXマシンを使用していますが、これが私の問題です。
._
ファイルでいっぱいです。アップロードされたすべてのファイルには、._
、text1.txt
、._text1.txt
、text2.txt
...などの._text2.txt
ファイルがあります。OSXはこれらのファイルをtarに含めています。
私はこれをやろうとしました
tar --exclude='._*' -cvf newTar .
違いなし。
現在、新しいサーバーにsshアクセスできません。
それを解決するにはどうすればよいですか?クリーンなtarを生成する方法を教えてください。
私の理解では、tar --exclude='._*' -cvf newTar .
は機能するはずです。Finderは._*
ファイルを作成しますが、newTar
にはそれらを含めないでください。
ただし、パススルーモードでtarを呼び出すことにより、これらのファイルを完全にバイパスできます。たとえば、some/path
の下にあるoldTar
からのファイルのみをコピーするには、次を使用します。
tar -cf newTar --include='some/path/*' @oldTar
._ファイルは、OS X bsdtar
がOS X固有の拡張属性とリソースフォークを処理する方法です。 (これはAppleDoubleとして知られているメカニズムであり、実際にはTARアーカイブ以外にも適用されます。MacOSリソースフォークとFinder情報を保持するためのネイティブメカニズムがないいくつかのストレージ形式で見られます。)
それらがtarファイルに追加されないようにするには、COPYFILE_DISABLE=1
をtarの環境変数として。
COPYFILE_DISABLE=1 tar cf newTar.tar /your/files
「._ *」で始まるこれらのファイルは、Appleによる特定のロケーションインジケーターファイル THIS POST によるものであり、端末にログインしているときにそれらを取り除くことはできません) om OSX、同じページによると、Apple以外のOSにファイルをアップロードし、それらのファイルを削除して、再度tarで圧縮する必要があります。これが唯一の解決策のようです。