i

Usage

$ tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

Description: GNU tar is an archiving program that allows you to store multiple files in a single file (an archive) and manipulate them. The archive can be a regular file or a device (for example, a tape drive), which stands for tape archiver, and it can be located on a local machine or a remote machine. Often combined with grep for searching archived content or used alongside other essential Linux commands for file management workflows.

Common Use Cases

  • Server Backups: Create automated backups using cron jobs for scheduled archiving of critical data on your VPS
  • Container Backups: Archive Docker volumes and configuration files for disaster recovery
  • File System Management: Navigate and compress directories efficiently within the Linux filesystem hierarchy
  • Remote Transfers: Combine with curl or SSH for secure file transfers between servers

Common Options

Option Description
-A Append archive to the end of another archive.
-c Create a new archive. Directories are archived recursively, unless the --no-recursion option is given.
-d Find differences between archive and file system.
--delete Delete provided members from an archive.
-r Append files to the end of an archive.
-t List the contents of an archive.
-u Append files which are newer than the corresponding copy in the archive.
-x Extract files from an archive.
-? or --help Display a short option summary and exit.
-k Don't replace existing files when extracting.
-O Extract files to standard output.
-p filename of the archive.
-v Verbosely list files processed.
-z Compress files with gzip.
-j Compress files with bzip2.
-J Compress files with xz.
-Z Compress files with compress.
-a Use archive suffix/extension to determine the compression program.
-C Changes to the specified directory before performing any operation.
--exclude=FILE Excludes the FILE when adding to tar archive or extracting from a tar archive.

Options Examples

Concatenate files into a single tarball called archive.tar

$ tar -cf archive.tar file1 file2 fileN

List the contents of archive without extracting.

$ tar -tf archive.tar

Concatenate all files in a directory into a single tarball, called archive.tar

$ tar -cf archive.tar *

Archive only .php files.

$ tar -cf archive.tar *.php

Extract files from the tar archive file.

$ tar -xf archive.tar

Extract specific file from an archive.

$ tar -xf archive.tar file1 file2

List the contents of an archive.

$ tar -tf archive.tar

Append files to an existing archive.

$ tar -rf archive.tar file_to_append

Merge archive2.tar into archive.tar

$ tar -Af archive.tar archive2.tar

Delete files from an archive.

$ tar --delete archive.tar file_to_delete

Find differences between an archive and file.

$ tar -df archive.tar file1

Append only new files to the archive.

$ tar -uf archive.tar new_files

Create an archive and compress it with gzip utility.

$ tar -czf archive.tar.gz file1 file2

Create an archive and compress it with bzip2 utility.

$ tar -cjf archive.tar.gz file1 file2

Extract archive into a specific directory.

$ tar -xf archive.tar -C directory-path

Exclude config.php file while creating an archive

$ tar -cf archive.tar * --exclude=config.php

Related Tools & Commands

Master these complementary commands to enhance your file management and archiving workflows on Linux systems.

Learn system administration and Linux commands for managing your VPS infrastructure efficiently