gzip data.txt したら data.txt が消えて data.txt.gz だけになった
元は残せへんの?
【疑問】gzip したら元のファイルが消えた。gzip・bzip2・xz の圧縮と展開、file コマンド【LPICレベル1】
前提のおさらい。tar は c で作成、x で取り出し、z・j・J で gzip・bzip2・xz を通す
>>1
gzip・bzip2・xz はどれも、圧縮すると元のファイルを消して、拡張子付きのファイルに置き換える。残すなら -k
>>3
3つの対応
gzip:.gz、展開は gunzip か gzip -d
bzip2:.bz2、展開は bunzip2 か bzip2 -d
xz:.xz、展開は unxz か xz -d
>>3-c は結果を標準出力に出して、元のファイルはそのまま。gzip -c data.txt > d.gz みたいに使う
>>4
どれがよく縮むん?
>>6
1〜20000 の数字を1行ずつ並べたファイル(108894バイト)で試した
gzip:45013 バイト
bzip2:25147 バイト
xz:4956 バイト
中身によって変わるけど、だいたい gzip より bzip2、bzip2 より xz が小さくなって、そのぶん時間がかかる
>>7-1(速い)〜-9(よく縮む)で強さを変えられる。gzip と xz の既定は -6
>>3
展開した先に同じ名前があったら?
>>9
上書きせずに止まる。unxz data.txt.xz は data.txt があったので File exists で失敗した。上書きするなら -f
>>4
tar と何が違うん?
>>11
gzip などは1つのファイルを縮めるだけで、複数をまとめない。まとめるのは tar で、縮めるのが gzip。だから .tar.gz の二段になる
>>1
拡張子がないファイルの中身の種類は?
>>13file で中身から判断するfile proj.tar.gz → gzip compressed data, …file data.txt → ASCII textfile /etc → directoryfile /dev/null → character special (1/3)
>>14file -i で MIME の形(text/plain; charset=us-ascii)でも出せる
>>3
圧縮すると元は消える、残すなら -k か -c。展開は gunzip・bunzip2・unxz。もう焦らんで済むわ
管理人のひとこと
- gzip(.gz)・bzip2(.bz2)・xz(.xz)は、圧縮すると元のファイルを消して置き換える。残すなら
-k、標準出力に出すなら-c。 - 展開は gunzip・bunzip2・unxz、または各コマンドの
-d。展開先に同じ名前があると止まる(-fで上書き)。 - 一般に gzip より bzip2、bzip2 より xz がよく縮み、時間がかかる。
-1〜-9で強さを変え、gzip と xz の既定は-6。 - これらは1つのファイルを縮めるだけで、まとめるのは tar。
fileは中身からファイルの種類を判断する。