2.8 KiB
2.8 KiB
Compression In Linux (tar and gzip)
- Introduction to tar and gzip
- Using tar
- Using gzip
- Combining tar and gzip
- Advanced usage and options
- Best practices and tips
1. Introduction to tar and gzip:
tar (Tape Archive) and gzip (GNU Zip) are two essential utilities in Linux for archiving and compressing files.
- tar: Creates archives by combining multiple files and directories into a single file.
- gzip: Compresses single files to reduce their size.
These tools are often used together to create compressed archives.
2. Using tar:
Basic syntax: tar [options] [archive_name] [files_to_archive]
Common options:
- -c: "C"reate a new archive
- -x: E"x"tract files from an archive
- -v: "V"erbose mode (list files processed)
- -f: Specify the archive "f"ile name
- -t: Lis"t" whats inside the archive
- -C: CAPITAL C will "C"hange the directory to output the extracted contents
Examples:
- Create an archive:
tar -cvf archive.tar file1 file2 directory1# "C"reate an archive called archive.tar using file1, file2, and directory1.
- Extract an archive:
tar -xvf archive.tar -C ~/extracted/# Will change to the home "~" directory and then into the extracted directory before extracting the archive.
- List contents of an archive:
tar -tvf archive.tar
3. Using gzip:
Basic syntax: gzip [options] [file_name]
Common options:
- -d: Decompress
- -r: Recursive (compress files in directories)
- -v: Verbose mode
- -[1-9]: Compression level (1-9, 9 being highest)
Examples:
- Compress a file with a compression level:
gzip -9 file.txt# gzip a file using the best compression "-9" available.
- Decompress a file:
gzip -d file.txt.gz
4. Combining tar and gzip:
tar can use gzip compression directly with the 'z' option.
- Create a compressed archive:
tar -czvf archive.tar.gz directory1# Will "c"reate a tar archive, then g"z"ip it.
- Extract a compressed archive:
tar -xzvf archive.tar.gz
5. Advanced usage and options:
- Exclude files or directories:
tar -czvf archive.tar.gz directory1 --exclude=*.log
- Update an existing archive:
tar -uvf archive.tar newfile# This will add the newfile into the existing archive.tar.
- Use bzip2 compression (often better for text):
tar -cjvf archive.tar.bz2 directory1###- Preserve file permissions:tar -cpvf archive.tar directory1###- Split large archives:tar -cvf - directory1 | split -b 1G - archive.tar.part
6. Best practices and tips:
- Use .tar.gz or .tgz extension for gzip-compressed tar archives
- Test archives after creation by listing or extracting
- Use compression levels wisely (higher levels are slower)
- Consider using xz for better compression (use -J option with tar)
- For large backups, consider using incremental backups with tar's --listed-incremental option