LinuC対策勉強の際、bzip2、xzコマンドに-r(ディレクトリ内のファイルをすべて圧縮)の記載がなかったので、コマンドとして使用できるのかを検証してみる。
(マニュアル見たほうが解決は速いのだが、、)
ついでに圧縮について、業務にてテストデータを準備するとき、そこそこ使用する頻度があったので、備忘録的にまとめたほうが後々便利かと思いアウトプット。
まず、gzip bzip2 xz の基本的な操作コマンドをオプション一覧でまとめる。
余談ですが、-rオプションは指定したディレクトリごと圧縮するのではなく、ディレクトリ内のファイルをすべて圧縮するだけです。
ディレクトリを圧縮するにはtarコマンドを使用し、アーカイブを作成したあとにgzipコマンドなどで圧縮する必要があります。
ファイルの圧縮、解凍コマンドのオプション一覧
オプションの説明\コマンド | gzip | bzip2 | xz |
---|---|---|---|
圧縮ファイルを展開 | -d, --decompress | -d, --decompress | -d, --decompress |
標準出力へ出力 | -c,--stdout | -c,--stdout | -c,--stdout |
圧縮・解凍元ファイルを残す | -k, --keep | -k, --keep | -k, --keep |
ディレクトリ内のファイルをすべて圧縮 | -r, --recursive | (使用不可) | (使用不可) |
基本的な書式は下記の通り( {コマンド} はzip、gzip、bzip2、xz )
$ {コマンド} [オプション] [ファイル名]
検証
上記の「ファイルの圧縮、解凍コマンドのオプション一覧」に記載したが、
結論を言えばbzip2、xzコマンドに-r(ディレクトリ内のファイルをすべて圧縮)は使用できなかった。
検証は以下の通り
/bash_test
|--test.txt
|--test2.txt
|--testdir
| |--test2
| |--test2.txt
| | |--test1.txt
ディレクトリ構造の表示は下記を参考
bzip2 → NG
xz → NG
gzip → OK
実行後ディレクトリ
/bash_test
|--test.txt
|--test.txt.gz
|--test2.txt
|--test2.txt.gz
|--testdir
| |--test2
| |--test2.txt
| |--test2.txt.gz
| | |--test1.txt
| | |--test1.txt.gz
結論
gzipでは使用できる-rは、bzip2、xzコマンドに使えなかった。
めったにないとは思うが、例えば、圧縮したテストファイルをディレクトリに分けて準備するときや、ディレクトリに分かれた圧縮データを解凍する時などには注意をしたい。
参考