Tool Comparisons

Two tools that look interchangeable until the day the difference bites. Each page lays them side by side, walks through the situations where one clearly wins, and ends with a verdict that actually commits to an answer.

No "it depends" endings. It usually does depend — on the job — so each page names the job and then names the winner for it.

Most of these pairs exist because Unix evolved rather than being designed in one go. rsync did not replace scp; it was written later for a different problem and turned out to be better at the shared one. ripgrep did not replace grep; it optimised for searching code repositories, which is not what grep was built for. Knowing why both survive is usually enough to know which to reach for.

The other reason to read these: the loser of a comparison is often the right answer in one specific situation, and that situation is exactly where people pick wrong. scp on a machine without rsync installed, grep on a server you cannot install software on, zip when the recipient uses Windows. Each page names those cases explicitly.

rsync vs scp

Both copy files over SSH. rsync sends only what changed; scp sends everything, every time.

curl vs wget

curl is an HTTP client for talking to services; wget is a downloader for retrieving files.

sed vs awk

sed edits lines; awk understands columns. Substitution is sed, computation is awk.

symbolic link vs hard link

A symlink stores a path and can break; a hard link is a second real name for the same file.

grep vs ripgrep (rg)

grep is everywhere; ripgrep is dramatically faster on code and respects .gitignore by default.

tar.gz vs zip

tar.gz compresses better and preserves Unix permissions; zip opens with a double click on any system.