Compressing files from the terminal doesn’t need to be a magical combination of options. Learn all the basics of Gzip with examples.
Compressing a file with Gzip
Compressing a file can be completed by running:
However, this will remove YOUR-FILE and leave you with YOUR-FILE.gz. If you want to keep your original file—so you’d end up with YOUR-FILE and YOUR-FILE.gz, then you’ll need to use the keep (
gzip -k YOUR-FILE
If you want to compress your file as much as possible, you’ll also want to set your compression level. The options range from 1 to 9.
- 1 will give you the largest file (least compression), but will finish as quickly as possible.
- 2-8 will give you a balance between least or most compression, at the cost of speed. If you do not specify a compression level, 6 is the default.
- 9 will give you the smallest file, but will take the most processing power.
gzip -k1 YOUR-FILE gzip -k6 YOUR-FILE gzip -k9 YOUR-FILE # Without keeping your file gzip -9 YOUR-FILE
Compressing stdin with Gzip
Gzip works just as well with stdin as with a file. However, you will need to specify your .gz file to write to—or use the stdout as input for another command with a pipe.
# Write to a file cat YOUR-FILE | gzip -9 > YOUR-FILE.gz # Pipe to another command cat YOUR-FILE | gzip -3 | openssl rsautl -inkey YOUR-KEY.txt -encrypt > YOUR-ENCRYPTED-FILE.bin
Sending Gzip result to stdout
When we compressed from stdin, Gzip automatically set the output to stdout—rather than writing to a file. However, if we want to Gzip a file and send the compressed output to stdout, we’ll need to use the
gzip -c9 YOUR-FILE > SOME-OTHER-DEST.gz
-c automatically keeps your file,
-k is not needed.
Viewing compression information about a file
Once you have a .gz file, you can view compression information about it with the
# Worst compression gzip -k1 YOUR-FILE gzip -l YOUR-FILE.gz compressed uncompressed ratio uncompressed_name 4088 27475 85.2% YOUR-FILE # Best compression gzip -k9 YOUR-FILE gzip -l YOUR-FILE.gz compressed uncompressed ratio uncompressed_name 3244 27475 88.3% YOUR-FILE
The amount of compression achieved for your file will be dependent upon what you are compressing.
Gzip can also decompress your .gz file with the
# Keep the .gz file gzip -kd YOUR-FILE.gz # Or don't gzip -d YOUR-FILE.gz
Recompressing a file
If you have an existing .gz file that was compressed with a faster compression (such as
-1), we can recompress the file.
First, your file:
gzip -l YOUR-FILE.gz compressed uncompressed ratio uncompressed_name 4093 27475 85.2% YOUR-FILE
Recompress your file by decompressing (
-d), sending to stdout (
-c) piping to the
gzip command with a better compression level:
gzip -cd YOUR-FILE.gz | gzip -9 > YOUR-SMALLER-FILE.gz
Check your result (if you want):
gzip -l YOUR-SMALLER-FILE.gz compressed uncompressed ratio uncompressed_name 3239 27475 88.3% YOUR-SMALLER-FILE