Cheatsheet & Examples: tar

tar is a command-line utility for creating, extracting, and managing archive files, commonly used for packaging and compressing files in Unix-like systems. It supports various compression methods and file operations.
Create a tar archive
Example Usage:tar -cvf archive.tar file1 file2
What it does:
Creates a non-compressed tar archive named archive.tar
containing file1
and file2
.
Command-line Arguments Explained:
-c
: Creates a new archive.-v
: Enables verbose mode to display progress.-f
: Specifies the archive filename (followed by the name, e.g.,archive.tar
).
Extract a tar archive
Example Usage:tar -xvf archive.tar
What it does:
Extracts the contents of archive.tar
to the current directory.
Command-line Arguments Explained:
-x
: Extracts files from the archive.-v
: Displays the extracted files.-f
: Specifies the archive filename.
Create a compressed tar archive (gzip)
Example Usage:tar -czvf archive.tar.gz file1 file2
What it does:
Creates a gzip-compressed tar archive named archive.tar.gz
with file1
and file2
.
Command-line Arguments Explained:
-c
: Creates a new archive.-z
: Compresses the archive using gzip.-v
: Enables verbose mode.-f
: Specifies the archive filename.
Extract a compressed tar archive (gzip)
Example Usage:tar -xzvf archive.tar.gz
What it does:
Extracts the contents of a gzip-compressed tar archive (archive.tar.gz
) to the current directory.
Command-line Arguments Explained:
-x
: Extracts files from the archive.-z
: Decompresses the archive using gzip.-v
: Displays the extracted files.-f
: Specifies the archive filename.
List contents of a tar archive
Example Usage:tar -tvf archive.tar
What it does:
Lists the files and directories in archive.tar
without extracting them.
Command-line Arguments Explained:
-t
: Lists the contents of the archive.-v
: Displays detailed information (e.g., permissions, sizes).-f
: Specifies the archive filename.
Append files to an existing tar archive
Example Usage:tar -rvf archive.tar file3
What it does:
Adds file3
to the end of archive.tar
without overwriting existing content.
Command-line Arguments Explained:
-r
: Appends files to the archive.-v
: Displays the files being added.-f
: Specifies the archive filename.
Update an existing tar archive
Example Usage:tar -uvf archive.tar file1
What it does:
Updates the archive with file1
if it has changed since the last addition.
Command-line Arguments Explained:
-u
: Updates the archive by adding newer files.-v
: Displays the update progress.-f
: Specifies the archive filename.
Extract to a specific directory
Example Usage:tar -xvf archive.tar -C /path/to/directory
What it does:
Extracts the contents of archive.tar
into the specified directory (/path/to/directory
).
Command-line Arguments Explained:
-x
: Extracts files from the archive.-v
: Displays extracted files.-f
: Specifies the archive filename.-C
: Changes to the target directory before extraction.
Exclude specific files or directories
Example Usage:tar -cvf archive.tar --exclude='*.log' directory/
What it does:
Creates an archive of directory/
while excluding all .log
files.
Command-line Arguments Explained:
-c
: Creates a new archive.-v
: Displays progress.-f
: Specifies the archive filename.--exclude
: Ignores files matching the specified pattern.
Extract specific files from an archive
Example Usage:tar -xvf archive.tar file1 file2
What it does:
Extracts only file1
and file2
from archive.tar
.
Command-line Arguments Explained:
-x
: Extracts files from the archive.-v
: Displays the extracted files.-f
: Specifies the archive filename.
Compress using bzip2
Example Usage:tar -cjvf archive.tar.bz2 file1
What it does:
Creates a bzip2-compressed tar archive (archive.tar.bz2
) with file1
.
Command-line Arguments Explained:
-c
: Creates a new archive.-j
: Compresses using bzip2.-v
: Enables verbose mode.-f
: Specifies the archive filename.
Decompress using xz
Example Usage:tar -xJvf archive.tar.xz
What it does:
Extracts a tar archive compressed with xz (archive.tar.xz
).
Command-line Arguments Explained:
-x
: Extracts files.-J
: Decompresses using xz.-v
: Displays extracted files.-f
: Specifies the archive filename.
Preserve file permissions during extraction
Example Usage:tar -xvf archive.tar -p
What it does:
Extracts files while preserving their original permissions.
Command-line Arguments Explained:
-x
: Extracts files.-v
: Displays extracted files.-f
: Specifies the archive filename.-p
: Preserves file permissions (equivalent to--same-permissions
).
Extract without following symbolic links
Example Usage:tar -xvf archive.tar -h
What it does:
Extracts files without resolving or following symbolic links.
Command-line Arguments Explained:
-x
: Extracts files.-v
: Displays extracted files.-f
: Specifies the archive filename.-h
: Follows symbolic links only if they point to files within the archive.
Use wildcard patterns to extract files
Example Usage:tar -xvf archive.tar --wildcards '*.txt'
What it does:
Extracts all .txt
files from archive.tar
using wildcard matching.
Command-line Arguments Explained:
-x
: Extracts files.-v
: Displays extracted files.-f
: Specifies the archive filename.--wildcards
: Enables wildcard pattern matching.
Create an archive with absolute paths
Example Usage:tar -cvf archive.tar -P /absolute/path/file
What it does:
Includes the full absolute path (/absolute/path/file
) in the archive.
Command-line Arguments Explained:
-c
: Creates a new archive.-v
: Displays progress.-f
: Specifies the archive filename.-P
: Preserves absolute paths in the archive.
Create a tarball with GNU tar-specific options
Example Usage:tar --format=posix -cvf archive.tar file1
What it does:
Creates a tar archive using the POSIX format, ensuring compatibility with older systems.
Command-line Arguments Explained:
--format=posix
: Uses the POSIX-standard tar format.-c
: Creates a new archive.-v
: Displays progress.-f
: Specifies the archive filename.
Subscribe to my newsletter
Read articles from Hong directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Hong
Hong
I am a developer from Malaysia. I work with PHP most of the time, recently I fell in love with Go. When I am not working, I will be ballroom dancing :-)