Ketika saya melakukannya:
# gzip -c foo > foo1.gz
# gzip < foo > foo2.gz
Mengapa foo2.gz
ukurannya lebih kecil daripada foo1.gz
?
Karena itu menyimpan nama file dan stempel waktu sehingga dapat mencoba memulihkan keduanya setelah Anda mendekompres nanti. Karena foo
diberikan gzip
melalui via <stdin>
pada contoh kedua Anda, ia tidak dapat menyimpan informasi nama file dan cap waktu.
Dari halaman manual:
-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.
Saya telah membuat ulang masalah di sini:
[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
Dalam contoh saya, file.txt.gz
adalah setara dengan Anda foo2.gz
. Menggunakan -n
opsi menonaktifkan perilaku ini ketika sebaliknya akan memiliki akses ke informasi:
[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
Seperti yang Anda lihat di atas, ukuran file untuk file.txt
dan file3.txt
cocok karena mereka sekarang sama-sama menghilangkan nama dan tanggal.