Extrat tar "開けません: ファイル名が長すぎます"

Extrat tar

リモートシステムのディレクトリを使用してtarファイルを作成しました。

tar -czvf

解凍したいローカルコンピュータにscpします。

tar -xzvf

しかし、私は次のようになります。Cannot open: File name too long

私のlubuntu 12.04ローカルマシンには次のものがあります tar (GNU tar) 1.26

これでリモートシステムにアクセスできません。必要に応じてバージョンを確認します。

特にリモートシステムがオフラインなので、新しいtarを作成せずに抽出したいと思います。

ちなみに名前が長くても、きちんとしたアーカイブの作り方をご存知でしたら承諾いたします。

ベストアンサー1

tarファイル名を256バイト(GNU拡張子を含む)に制限してください。 Linuxファイルシステムは、ファイル名あたり少なくとも256バイトをサポートします。これは、圧縮されたファイルをtarエラーなしで抽出できることを意味します。だから私は2つの理由があると思います。

  1. タルボールが破損しています。以下で確認してください。

    $ tar -tvf tarball.tar
    

    場合によっては、いくつかのエラーが表示されます。

  2. 「仮想」ファイルシステムを使用します。ヒューズ圧縮または暗号化されたファイルシステム(オプションのファイル圧縮/暗号化を使用)ファイル名が少し​​短いか、ファイルシステムの制限と同じです。トリックは、たとえば、ヒューズ圧縮を使用してディレクトリをマウントしてファイル名を作成するときに、foo.bar仮想ファイルシステムが名前付きファイルを生成してfoo.bar.gz透明に圧縮しますが、実際のファイル名は非表示になることです。名前の長さが254バイトのファイルを生成すると、ファイルにサフィックスを追加しようとするため、エラーが発生します。

    この場合、仮想ファイルシステムの外部からtarballを抽出すると便利です。

    $ sudo mkdir /home/${USER}-temp
    $ sudo chown $USER /home/${USER}-temp
    $ tar -xvf tarball.tar -C /home/${USER}-temp
    

とにかく詳細については、追跡してください。

$ strace -o tar-strace.log tar -tf tarball.tar
$ ltrace -o tar-ltrace.log tar -tf tarball.tar

おすすめ記事