読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】gzip したら元のファイルが消えた。gzip・bzip2・xz の圧縮と展開、file コマンド【LPICレベル1】

16レスカテゴリ:Linux
1: 名無しさん

gzip data.txt したら data.txt が消えて data.txt.gz だけになった
元は残せへんの?

2: 名無しさん

前提のおさらい。tar は c で作成、x で取り出し、z・j・J で gzip・bzip2・xz を通す

3: 名無しさん

>>1
gzip・bzip2・xz はどれも、圧縮すると元のファイルを消して、拡張子付きのファイルに置き換える。残すなら -k

4: 名無しさん

>>3
3つの対応
gzip:.gz、展開は gunzip か gzip -d
bzip2:.bz2、展開は bunzip2 か bzip2 -d
xz:.xz、展開は unxz か xz -d

5: 名無しさん

>>3
-c は結果を標準出力に出して、元のファイルはそのまま。gzip -c data.txt > d.gz みたいに使う

6: 名無しさん

>>4
どれがよく縮むん?

7: 名無しさん

>>6
1〜20000 の数字を1行ずつ並べたファイル(108894バイト)で試した
gzip:45013 バイト
bzip2:25147 バイト
xz:4956 バイト
中身によって変わるけど、だいたい gzip より bzip2、bzip2 より xz が小さくなって、そのぶん時間がかかる

8: 名無しさん

>>7
-1(速い)〜-9(よく縮む)で強さを変えられる。gzip と xz の既定は -6

9: 名無しさん

>>3
展開した先に同じ名前があったら?

10: 名無しさん

>>9
上書きせずに止まる。unxz data.txt.xz は data.txt があったので File exists で失敗した。上書きするなら -f

11: 名無しさん

>>4
tar と何が違うん?

12: 名無しさん

>>11
gzip などは1つのファイルを縮めるだけで、複数をまとめない。まとめるのは tar で、縮めるのが gzip。だから .tar.gz の二段になる

13: 名無しさん

>>1
拡張子がないファイルの中身の種類は?

14: 名無しさん

>>13
file で中身から判断する
file proj.tar.gz → gzip compressed data, …
file data.txt → ASCII text
file /etc → directory
file /dev/null → character special (1/3)

15: 名無しさん

>>14
file -i で MIME の形(text/plain; charset=us-ascii)でも出せる

16: 名無しさん

>>3
圧縮すると元は消える、残すなら -k か -c。展開は gunzip・bunzip2・unxz。もう焦らんで済むわ

管理人のひとこと