Linux Tar Command Examples

25 Practical Examples with Explanations and Output

The tar command in Linux is used to create, extract, and manipulate archive files. The name stands for "Tape Archive" though it's used for file archives today. Below are 25 practical examples with explanations.

1. Create a tar archive

$ tar -cvf archive.tar file1.txt file2.txt
Create a tar archive named archive.tar containing file1.txt and file2.txt
Output:
file1.txt
file2.txt

2. Extract a tar archive

$ tar -xvf archive.tar
Extract all files from archive.tar
Output:
file1.txt
file2.txt

3. Create a gzipped tar archive

$ tar -czvf archive.tar.gz directory/
Create a compressed tar archive using gzip
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

4. Extract a gzipped tar archive

$ tar -xzvf archive.tar.gz
Extract a gzipped tar archive
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

5. List contents of a tar archive

$ tar -tvf archive.tar
List all files in archive.tar without extracting
Output:
-rw-r--r-- user/user 0 2023-10-05 12:34 file1.txt
-rw-r--r-- user/user 0 2023-10-05 12:34 file2.txt

6. Create a bzipped tar archive

$ tar -cjvf archive.tar.bz2 directory/
Create a compressed tar archive using bzip2
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

7. Extract a bzipped tar archive

$ tar -xjvf archive.tar.bz2
Extract a bzipped tar archive
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

8. Create a xzipped tar archive

$ tar -cJvf archive.tar.xz directory/
Create a compressed tar archive using xz
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

9. Extract a xzipped tar archive

$ tar -xJvf archive.tar.xz
Extract a xzipped tar archive
Output:
directory/
directory/file1.txt
directory/subdir/
directory/subdir/file2.txt

10. Extract to a specific directory

$ tar -xvf archive.tar -C /path/to/directory
Extract tar archive to a specific directory
Output:
file1.txt
file2.txt

11. Add files to existing archive

$ tar -rvf archive.tar newfile.txt
Append a file to an existing tar archive
Output:
newfile.txt

12. Extract a specific file

$ tar -xvf archive.tar file1.txt
Extract only file1.txt from the archive
Output:
file1.txt

13. Extract multiple specific files

$ tar -xvf archive.tar file1.txt file2.txt
Extract only specific files from the archive
Output:
file1.txt
file2.txt

14. Create archive with wildcard

$ tar -cvf text_files.tar *.txt
Create an archive of all text files in the current directory
Output:
file1.txt
file2.txt
notes.txt

15. Exclude files from archive

$ tar -cvf archive.tar --exclude='*.tmp' directory/
Create an archive excluding files with .tmp extension
Output:
directory/
directory/file1.txt
directory/file2.txt

16. Verify an archive

$ tar -tvfW archive.tar
List and verify files in the archive
Output:
Verify file1.txt
Verify file2.txt

17. Preserve permissions

$ tar -cpvf archive.tar directory/
Create an archive preserving file permissions
Output:
directory/
directory/file1.txt
directory/file2.txt

18. Create archive with absolute paths

$ tar -cvf archive.tar /absolute/path/to/file
Create an archive using absolute file paths
Output:
/absolute/path/to/file

19. Extract with overwrite

$ tar -xvf archive.tar --overwrite
Extract files from archive, overwriting existing files
Output:
file1.txt
file2.txt

20. Extract without overwrite

$ tar -xvf archive.tar --keep-old-files
Extract files but don't overwrite existing ones
Output:
file1.txt
file2.txt

21. Create compressed archive with maximum compression

$ tar -cvzf archive.tar.gz --gzip-option=-9 directory/
Create a gzipped tar archive with maximum compression level
Output:
directory/
directory/file1.txt
directory/file2.txt

22. Extract specific file to stdout

$ tar -xOf archive.tar file1.txt
Extract file1.txt and write it to standard output
Output:
Contents of file1.txt displayed here...

23. Update existing archive

$ tar -uvf archive.tar file3.txt
Add file3.txt to archive.tar only if it's newer than the version in the archive
Output:
file3.txt

24. Delete files from archive

$ tar --delete -f archive.tar file1.txt
Remove file1.txt from archive.tar
Output:
(No output on success)

25. Compare archive with file system

$ tar -df archive.tar
Compare files in archive with files in the filesystem
Output:
file1.txt: Mod time differs
file2.txt: Size differs

Common Tar Options Summary

-c: Create a new archive
-x: Extract files from an archive
-t: List contents of an archive
-v: Verbose output
-f: Specify archive filename
-z: Filter through gzip
-j: Filter through bzip2
-J: Filter through xz
-r: Append files to archive
-u: Update archive
-C: Change to directory
-p: Preserve permissions
-O: Extract to stdout
-W: Verify archive