大容量アーカイブを解凍する必要があります。問題は、圧縮して抽出したファイルを収容するのに十分なディスク容量がないことです。解凍後すぐにアーカイブから圧縮ファイルを削除するオプションはありますか?それでは、どうすればいいですか?現在、私のファイルはtarコマンドで圧縮されていますが、他のサーバーでは異なるタイプに再パッケージすることができます。
答え1
メモ。ファイルが圧縮されている場合は機能しません!それについて考えてもしないでください! !
この場合、このようにしてみましょう。
tar アーカイブを逆方向に移動し、ファイルを抽出し、アーカイブから削除する簡単なスクリプトを作成しました。このファイルがその中のディレクトリ構造と連携しているかどうかはわかりませんでしたが、「フラット」tarアーカイブでのみテストしました。
スクリプトは次のとおりです。
#!/bin/bash
archive="$1"
while true
do
file=$(tar --list -f tar.tar | tail -n 1)
if [ -z "$file" ]; then
break
fi
tar --extract -f "$archive" "$file" && tar --delete -f "$archive" "$file"
done
警告:私はこれをテストしました。ただし、上記のスクリプトが一部のファイルをスキップしたり、機能しなかったり、コンピュータをトースターに置き換えたりしないことを保証することはできません。自分の責任で使用してください!
私のテストは次のとおりです。
:/mnt$ ls -l
total 2445456
-rwxrwxr-x 1 va va 201 окт 28 08:50 do.sh
-rw-rw-r-- 1 va va 2504140800 окт 28 08:45 tar.tar
:/mnt$ df -h |grep /mnt
tmpfs 3,0G 2,4G 684M 78% /mnt
:/mnt$ ./do.sh tar.tar
:/mnt$ df -h |grep /mnt
tmpfs 3,0G 2,4G 684M 78% /mnt
:/mnt$ ls -lh tar.tar
-rw-rw-r-- 1 va va 10K окт 28 08:53 tar.tar
tarアーカイブには最後にメタデータのみが含まれており、削除できます。