私がするとき:
# gzip -c foo > foo1.gz
# gzip < foo > foo2.gz
foo2.gz
最終サイズが小さいのはなぜですかfoo1.gz
?
答え1
これは、解凍後に後で回復できるようにファイル名とタイムスタンプを保存するためです。 2番目の例ではviaがfoo
提供されているため、ファイル名とタイムスタンプ情報を保存できません。gzip
<stdin>
マンページから:
-n --no-name
When compressing, do not save the original file name and time stamp by default. (The original name is always saved if the name had
to be truncated.) When decompressing, do not restore the original file name if present (remove only the gzip suffix from the com-
pressed file name) and do not restore the original time stamp if present (copy it from the compressed file). This option is the
default when decompressing.
-N --name
When compressing, always save the original file name and time stamp; this is the default. When decompressing, restore the original
file name and time stamp if present. This option is useful on systems which have a limit on file name length or when the time
stamp has been lost after a file transfer.
ここで問題を再現しました。
[root@xxx601 ~]# cat /etc/fstab > file.txt
[root@xxx601 ~]# gzip < file.txt > file.txt.gz
[root@xxx601 ~]# gzip -c file.txt > file2.txt.gz
[root@xxx601 ~]# ll -h file*
-rw-r--r--. 1 root root 465 May 17 19:35 file2.txt.gz
-rw-r--r--. 1 root root 1.2K May 17 19:34 file.txt
-rw-r--r--. 1 root root 456 May 17 19:34 file.txt.gz
私の例では、このオプションを使用するとこの動作が無効になりますfile.txt.gz
。foo2.gz
-n
会議次の情報にアクセスできます。
[root@xxx601 ~]# gzip -nc file.txt > file3.txt.gz
[root@xxx601 ~]# ll -h file*
-rw-r--r--. 1 root root 465 May 17 19:35 file2.txt.gz
-rw-r--r--. 1 root root 456 May 17 19:43 file3.txt.gz
-rw-r--r--. 1 root root 1.2K May 17 19:34 file.txt
-rw-r--r--. 1 root root 456 May 17 19:34 file.txt.gz
file.txt
file3.txt
上記のように、名前と日付が省略されているため、ファイルサイズが一致します。