← All cheatsheets

Shell

tar + zip — create + extract archives

## tar create
`tar -cf out.tar dir/` — uncompressed
`tar -czf out.tar.gz dir/` — gzip
`tar -cjf out.tar.bz2 dir/` — bzip2 (smaller, slower)
`tar -cJf out.tar.xz dir/` — xz (smallest, slowest)

## tar extract
`tar -xf in.tar` — auto-detect compression
`tar -xf in.tar.gz -C dst/` — extract into a specific dir
`tar -xf in.tar dir/file` — extract single file

## tar inspect
`tar -tf in.tar` — list contents
`tar -tvf in.tar` — list with details

## tar over SSH
`tar cz dir | ssh host "tar xz -C /dst"` — stream a dir to remote (no temp file)

## zip + unzip
`zip -r out.zip dir/` — recursive
`zip -r out.zip dir/ -x '*.log'` — exclude
`unzip in.zip` — extract
`unzip in.zip -d dst/` — extract to dir
`unzip -l in.zip` — list contents

## When to pick which
- `.tar.gz` — Linux/macOS default; preserves permissions + symlinks
- `.zip` — cross-platform; what Windows users expect
- `.tar.xz` — when archive size matters more than time