Tar Cheatsheet
Complete tar command reference for archiving and compression. Search, filter by category, and click to copy.
Tar Cheatsheet
Archive and compression commands for Linux/Unix
Commands
Categories
Favorites
Sections
tar -cvf archive.tar /path/to/dirCreate archive from directory
tar -cvf archive.tar file1 file2 file3Create archive from multiple files
tar -cvf archive.tar *.txtArchive all .txt files
tar -cvf archive.tar -C /path dirArchive with changed directory
tar -cvf - /path | ssh user@host 'cat > archive.tar'Create and send to remote
tar -czvf archive.tar.gz /path/to/dirCreate gzip compressed archive
tar -cjvf archive.tar.bz2 /path/to/dirCreate bzip2 compressed archive
tar -cJvf archive.tar.xz /path/to/dirCreate xz compressed archive
tar -cavf archive.tar.gz /path/to/dirAuto-detect compression by extension
💡 -z: gzip, -j: bzip2, -J: xz, -a: auto-detect
tar -cvf archive.tar --exclude='*.log' /pathExclude .log files
tar -cvf archive.tar --exclude='node_modules' /pathExclude directory
tar -cvf archive.tar --exclude-from=exclude.txt /pathExclude from file list
tar -cvf archive.tar --exclude-vcs /pathExclude version control dirs
tar -xvf archive.tarExtract tar archive
tar -xvf archive.tar -C /destinationExtract to specific directory
tar -xvf archive.tar file.txtExtract single file
tar -xvf archive.tar --wildcards '*.txt'Extract files matching pattern
tar -xvf archive.tar --strip-components=1Remove leading directory
tar -xzvf archive.tar.gzExtract gzip archive
tar -xjvf archive.tar.bz2Extract bzip2 archive
tar -xJvf archive.tar.xzExtract xz archive
tar -xavf archive.tar.gzAuto-detect and extract
tar -xvf archive.tar --keep-old-filesDon't overwrite existing files
tar -xvf archive.tar --overwriteOverwrite existing files
tar -xvf archive.tar --no-same-ownerDon't preserve ownership
tar -xvf archive.tar --no-same-permissionsDon't preserve permissions
tar -tvf archive.tarList contents with details
tar -tf archive.tarList contents (names only)
tar -tzvf archive.tar.gzList gzip archive contents
tar -tjvf archive.tar.bz2List bzip2 archive contents
tar -tJvf archive.tar.xzList xz archive contents
tar -tvf archive.tar | grep 'pattern'Search for files in archive
tar -tvf archive.tar --wildcards '*.txt'List files matching pattern
tar -tvf archive.tar | head -20Show first 20 entries
tar -tvf archive.tar | wc -lCount files in archive
tar -rvf archive.tar newfile.txtAppend file to archive
tar -rvf archive.tar newdir/Append directory to archive
tar -uvf archive.tar file.txtUpdate file if newer
tar -Avf archive.tar other.tarAppend another archive
💡 Cannot add to compressed archives directly
tar --delete -f archive.tar file.txtDelete file from archive
tar --delete -f archive.tar 'dir/*'Delete directory contents
tar -dvf archive.tarCompare archive with filesystem
tar --diff -f archive.tarFind differences
tar -cvf - dir | gzip -9 > archive.tar.gzMaximum gzip compression
tar -cvf - dir | bzip2 -9 > archive.tar.bz2Maximum bzip2 compression
tar -cvf - dir | xz -9 > archive.tar.xzMaximum xz compression
GZIP=-9 tar -czvf archive.tar.gz dirSet gzip level via env
tar -cvf - dir | lz4 > archive.tar.lz4LZ4 compression (fast)
tar -cvf - dir | zstd > archive.tar.zstZstandard compression
tar -cvf - dir | pigz > archive.tar.gzParallel gzip (faster)
tar -cvf - dir | pbzip2 > archive.tar.bz2Parallel bzip2
💡 Parallel tools use multiple CPU cores
tar -cvf backup.tar -g snapshot.snar /dataCreate incremental backup
tar -cvf backup-1.tar -g snapshot.snar /dataFirst incremental
tar -cvf backup-2.tar -g snapshot.snar /dataNext incremental
tar -xvf backup.tar -g /dev/nullRestore incremental
💡 Snapshot file tracks changes between backups
tar -cvpf backup.tar /dataPreserve permissions
tar -cvf backup.tar --newer='2024-01-01' /dataFiles newer than date
tar -cvf backup.tar --after-date='2024-01-01' /dataModified after date
tar -cvf - /data | split -b 1G - backup.tar.Split into 1GB parts
tar -czvf - /data | ssh user@host 'cat > backup.tar.gz'Archive to remote server
ssh user@host 'tar -czvf - /data' > backup.tar.gzArchive from remote server
tar -czvf - /data | ssh user@host 'tar -xzvf - -C /dest'Transfer and extract
rsync -avz --delete /data/ user@host:/backup/Alternative: rsync
tar -cvf archive.tar --sparse /pathHandle sparse files efficiently
tar -cvf archive.tar --totals /pathShow total bytes written
tar -cvf archive.tar --checkpoint=1000 /pathShow progress every 1000 records
tar -cvf archive.tar --transform 's/old/new/' /pathTransform filenames
tar -cvf archive.tar --owner=root --group=root /pathSet owner/group
tar -tvf archive.tar > /dev/null && echo 'OK'Verify archive integrity
gzip -t archive.tar.gz && echo 'OK'Test gzip integrity
bzip2 -t archive.tar.bz2 && echo 'OK'Test bzip2 integrity
xz -t archive.tar.xz && echo 'OK'Test xz integrity
tar -czvf backup-$(date +%Y%m%d).tar.gz /dataDated backup filename
find /data -mtime -1 | tar -cvf backup.tar -T -Archive recently modified
tar -czvf - /data | pv | ssh user@host 'cat > backup.tar.gz'With progress bar
cat backup.tar.* | tar -xvf -Extract split archive
Quick Reference - Common Flags
-cCreate
-xExtract
-tList
-vVerbose
-fFile
-zGzip
-jBzip2
-JXZ
About Tar Command
The tar (tape archive) command is a powerful utility for creating, extracting, and managing archive files in Unix/Linux systems. It can combine multiple files into a single archive and supports various compression formats including gzip (.tar.gz), bzip2 (.tar.bz2), and xz (.tar.xz).
Common File Extensions
.tar- Uncompressed archive.tar.gzor.tgz- Gzip compressed.tar.bz2or.tbz2- Bzip2 compressed.tar.xzor.txz- XZ compressed