How to compress and tar a folder in Linux
Categories:
Mastering Folder Compression and Archiving with Tar in Linux

Learn how to efficiently compress and archive directories and files in Linux using the powerful tar
command, including various compression methods like gzip and bzip2.
In the Linux environment, managing files and directories often involves archiving and compressing them for easier storage, transfer, or backup. The tar
command (Tape ARchiver) is a fundamental utility for creating archives, which can then be compressed using tools like gzip
or bzip2
. This article will guide you through the process of using tar
to compress and archive folders, explaining the common options and best practices.
Understanding Tar and Compression
The tar
command itself is primarily an archiving utility. It bundles multiple files and directories into a single .tar
archive file, preserving directory structures, file permissions, and other metadata. While tar
doesn't compress by default, it can seamlessly integrate with compression programs. The most common compression methods used with tar
are gzip
(resulting in .tar.gz
or .tgz
files) and bzip2
(resulting in .tar.bz2
or .tbz
files). gzip
is generally faster, while bzip2
often achieves better compression ratios, especially for larger files.
flowchart TD A[Start: Select Folder] --> B{Create Tar Archive?} B -->|Yes| C[tar -cvf archive.tar folder/] B -->|No| D{Compress Archive?} C --> D D -->|gzip| E[tar -czvf archive.tar.gz folder/] D -->|bzip2| F[tar -cjvf archive.tar.bz2 folder/] E --> G[End: Compressed Tarball] F --> G
Workflow for creating compressed tar archives.
Basic Tar Commands for Archiving and Compression
The tar
command offers a variety of options to control its behavior. Here are the most frequently used ones for creating compressed archives:
-c
: Create a new archive.-v
: Verbose output, showing the files being added to the archive.-f
: Specify the filename of the archive. This option must be followed immediately by the archive's name.-z
: Compress the archive withgzip
.-j
: Compress the archive withbzip2
.-J
: Compress the archive withxz
(for.tar.xz
files), offering even better compression thanbzip2
but often slower.-x
: Extract files from an archive.-t
: List the contents of an archive.
When creating a compressed archive, you typically combine -c
, -v
, -f
, and one of the compression flags (-z
, -j
, or -J
).
# Create a gzipped tar archive of a folder named 'my_project'
tar -czvf my_project_archive.tar.gz my_project/
# Create a bzipped tar archive of a folder named 'documents'
tar -cjvf documents_backup.tar.bz2 documents/
# Create an xz compressed tar archive of a folder named 'data'
tar -cJvf data_archive.tar.xz data/
Examples of creating compressed tar archives.
/
when specifying a directory to ensure tar
archives the contents of the directory, not just the directory itself as a single entry. If you omit the slash, tar
might include the parent directory path in the archive, which can be inconvenient during extraction.Extracting Compressed Tar Archives
Extracting files from a compressed tar archive is just as straightforward. You'll use the -x
(extract) option along with the appropriate decompression flag (-z
, -j
, or -J
) and the -f
option to specify the archive file.
# Extract a gzipped tar archive
tar -xzvf my_project_archive.tar.gz
# Extract a bzipped tar archive
tar -xjvf documents_backup.tar.bz2
# Extract an xz compressed tar archive
tar -xJvf data_archive.tar.xz
# Extract to a specific directory (e.g., 'restore_location')
tar -xzvf my_project_archive.tar.gz -C restore_location/
Examples of extracting compressed tar archives.
-C
option (uppercase 'C') is extremely useful for extracting an archive's contents into a different directory than the current working directory. This helps keep your file system organized.Listing Archive Contents
Before extracting, you might want to inspect the contents of an archive without actually extracting it. The -t
(list) option allows you to do this.
# List contents of a gzipped tar archive
tar -tzvf my_project_archive.tar.gz
# List contents of a bzipped tar archive
tar -tjvf documents_backup.tar.bz2
Examples of listing archive contents.
By mastering these tar
commands, you can efficiently manage your files and directories in Linux, ensuring they are properly archived and compressed for various purposes.