Macでターミナルを使ってファイルをいじるようになると圧縮・解凍する作業も増えてきます。ここではよく使う圧縮・解凍コマンドをまとめています。
zip/gzip/bzip2コマンド
この3種類の圧縮形式はよく出てきます。他にも圧縮形式は幾つかありますが、この3種類を扱うことがほとんどかと思います。圧縮率はファイルの種類によって異なります。一般的には、bzip2の圧縮率が一番高く、続いてgzipとzipとなっていますが、zipとgzipは処理速度が早いです。なのでこの3つを扱えれば十分かなと思います。
圧縮コマンド
gzip圧縮
<tar形式のアーカイブをgzipで圧縮>
圧縮のときは”c”を付けて、gzipは”z”を付けます。
$ tar cvzf [圧縮ファイル名(~.tar.gz)] [ディレクトリ/ファイル]
例) $ tar cvzf sample.tar.gz sample $ tar cvf - sample | gzip -c > sample.tar.gz これでも同じように圧縮できます。
特定のファイルやフォルダを除外したい時は、”–exclude”オプションを使います。
例) $ tar cvzf sample.tar.gz --exclude='.DS_Store' --exclude=.git
bzip2圧縮
<tar形式のアーカイブをbzip2で圧縮>
*以前は”y”オプションを使っていましたが、現在は”j”のようです。
圧縮のときは”c”を付けて、bzip2は”j”を付けます。
$ tar cvjf [圧縮ファイル名(~.tar.bz2)] [ディレクトリ/ファイル]
例) $ tar cvjf sample.tar.bz2 sample $ tar cvf - sample | bzip2 -c > sample.tar.bz2 これでも同じように圧縮できます。
特定のファイルやフォルダを除外したい時は、gzipと同じように”–exclude”オプションを使います。
例) $ tar ycvf sample.tar.gz --exclude='.DS_Store' --exclude=.git
zip圧縮
<zipで圧縮>
$ zip [圧縮ファイル名] [ディレクトリ/ファイル]
例) $ zip -r sample.zip sample -rオプションでディレクトリ配下のサブディレクトリも全て含めて実行します。
特定のファイルやフォルダを除外したい時は、”-x”オプションを使います。
例) $ zip -r sample.zip sample -x '.DS_Store' '*.git*'
解凍コマンド
gzip/bzip2はtar形式のアーカイブを圧縮していることがほとんどなので、gzip/bzip2を解凍してtar形式のアーカイブを展開します。
gzip解凍
<gzipを解凍してtar形式のアーカイブを展開>
解凍のときは”x”を付けて、gzipは”z”を付けます。
$ tar xvzf [圧縮ファイル名(~.tar.gz)]
例) $ tar xvzf sample.tar.gz $ gzip -dc sample.tar.gz | tar xvf - これでも同じように解凍できます。
圧縮ファイル内を確認するには、
$ tar tvf sample.tar.gz
ファイルやフォルダを指定して解凍する場合は、
$ tar xvzf sample.tar.gz *sample_html
「*sample_html」の”*”は上位フォルダのワイルドカードです。これでこの環境のどこかにあるsample_htmlフォルダ以下だけを解凍します。ファイルを指定するときはこれがファイル名になります。
bzip2解凍
<bzip2を解凍してtar形式のアーカイブを展開>
解凍のときは”x”を付けて、gzipは”z”を付けます。
$ tar xvjf [圧縮ファイル名(~.tar.bz2)]
例) $ tar xvjf sample.tar.bz2 $ bzip2 -dc sample.tar.bz2 | tar xvf - これでも同じように解凍できます。
gzipと同じく圧縮ファイル内を確認するには、
$ tar tvf sample.tar.bz2
ファイルやフォルダを指定して解凍する場合は、
$ tar xvjf sample.tar.bz2 *samlple_html
zip解凍
<unzipで解凍>
$ unzip [圧縮ファイル名]
例) $ unzip sample.zip
また、zipコマンドは-eオプションで圧縮ファイルにパスワードを付けることができます。
$ zip -e sample.zip samle
パスワードが付いているzipファイルはunzipするとパスワードを問い合わせてきます。
そこでパスワードを入力すると解凍できます。
圧縮ファイル内を確認するには、
$ unzip -t sample.zip
ファイルやフォルダを指定して解凍する場合は、
$ unzip sample.zip *sample_html*
「*sample_html*」先頭の”*”は上位フォルダのワイルドカードです。これでこの環境のどこかにあるsample_htmlを解凍します。末尾の”*”はsample_htmlがフォルダであった場合にその配下も解凍します。この”*”がないと空のフォルダだけ解凍されるので、フォルダ配下も全て解凍するときは気をつけてください。