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).
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.
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.
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.
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.
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).
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.
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.