質問: gzipを使用してフォルダ全体を圧縮できますか? unixでフォルダを圧縮しようとしています。これはgzipコマンドを使用して実行できますか?
回答: 次の2つのコマンドをスクリプト化しました。gzipdir:#!/bin/bash if [[ -d $1 ]]; then cd "$1" cd .. base=$(basename "$1") tar -zcvf "$base.tgz" "$base" if [[ $? == 0 && -f "$base.tgz" ]]; then rm -rf "$base" fi else echo "usage: $0 directory"; fi ungzipdir:#!/bin/bash if [[ -f $1 ]]; then base=${1%%.*} file=$(basename "$1"); dir=$(basename "$base"); if [[ ! -d $base ]]; then mkdir "$base" cd "$base" cd .. tar -xvf "$file" if [[ $? == 0 && -d "$dir" ]]; then rm -f "$file" fi else echo "directory $base already exists. nothing done." fi else echo "usage: $0 file.tgz"; fi (!!!)使用前にテストしてください(珍しい方法で使用すると重要なデータが削除される可能性がある 'rm -f'があるため)。使い方:cd /home/; gzipdir mydirectoryまたはgzipdir /home/mydirectory/home/mydirectory.tgzを作成し、成功するとmydirectoryを削除します(!!!)。ungzipdir /home/mydirectory.tgz/ home/mydirectoryを作成し、成功すると/home/mydirectory.tgzを削除します。