zstd+tarでディレクトリを単ファイルにする
code:compress.sh
tar --zstd --dereference -cf file.tar.zst ./target-directory
--dereferenceでシンボリックリンクを解決して含めている
code:decompress.sh
tar -xf file.tar.zst
展開時はzstdフラグ不要(自動判別)
番外編 Dockerコンテナでスパッと使う
code:Dockerfile
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y zstd
WORKDIR /
code:backup.sh
set -eu
docker build . -t zstd-slim
volumes=$(docker volume ls -q)
for volume in $volumes; do
echo "$volume"
docker run --rm \
-v "$volume:/$volume" \
-v "$(pwd)/backup":/backup \
docker.io/library/zstd-slim \
tar --zstd --dereference -cf "/backup/$volume.tar.zst" "./$volume" || echo "Failed to backup $volume"
done