というフォルダには、一部のファイルを含むtarファイルがありますold_name
。ここで、ファイルをディスクに抽出せずにフォルダ名を変更した新しいtarファイルを作成したいと思います。new_name
これにより、大規模アーカイブの場合はかなり遅くなります(ディスクの読み取りと書き込みの速度が2倍以上)。
私はこれを行う方法を知っています。tar -xf old.tar; tar -cf new.tar --transform 's/old_name/new_name/' old_name
いくつか試してみましたが、何も動作しないようです。
tar -cOf old.tar | tar -xf new.tar --transform 's/old_name/new_name/'
cat old.tar | tar --delete --transform 's/old_name/new_name/' > new.tar
cat old.tar | tar -u --transform 's/old_name/new_name/' > new.tar
しかし、何も動作しないようです。
閉じた後、次を発見しました。
しかし、これはパスを変更するのではなく、tarballからファイルを削除することです。
ベストアンサー1
tar は tar を生成または抽出できますが、この方法でストリームで動作することはできません。
同様のものが必要ですtar-stream
。必要なことを行う例もあります。
https://github.com/mafintosh/tar-stream#modifying-existing-tarballs