Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
These four commands solve different problems: rsync synchronizes directory trees, find evaluates tests and actions for filesystem entries, sort orders text records, and tar creates or reads archives. Their short options are compact verbs and modifiers, not interchangeable switches. The safest habit is to identify the command’s input and side effect, then preview any operation that can change or delete data.
Start with the command’s mental model
Before decoding a flag, ask what the command operates on:
| Command | Primary job | Input and output shape | Potential side effect | Preview or check |
|---|---|---|---|---|
rsync |
Synchronize file trees | Source paths plus a destination | Updates files and, with deletion enabled, removes destination entries | --dry-run |
find |
Select and act on filesystem entries | Starting paths plus an expression | -exec and -delete can run commands or remove entries |
Print matches first |
sort |
Order records | Lines from files or standard input | Normally writes sorted text rather than changing source files | --check or --debug |
tar |
Package or unpack archive members | Archive members and filesystem paths | Creation and extraction read or write archive/filesystem state | --list before extraction |
Option names and long-option availability vary between GNU, BSD and other implementations. Check the installed program with command --version, command --help and its local manual. The GNU manuals referenced here identify Coreutils 9.11, Findutils 4.10.0.77-733bb and tar 1.35; those version identifiers do not guarantee that your operating system ships the same builds.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rsync: archive mode is a defined bundle, not “preserve everything”
Rsync is a local or remote file-copying and synchronization tool—“a fast and extraordinarily versatile file copying tool,” as the rsync manual puts it. Its archive shortcut is commonly misunderstood:
#1 Best Overall
rsync -a source/ destination/
-a expands to -rlptgoD:
-r: recurse through directories.-l: preserve symbolic links.-p: preserve permissions.-t: preserve modification times.-g: preserve group information.-o: preserve owner information.-D: preserve device and other special files.
Archive mode does not automatically include ACLs, extended attributes, hard links, access times, creation times or numeric user and group IDs. Add the separate options your environment requires, and verify the result on the installed version rather than assuming that -a means a complete metadata clone.
Understand the trailing slash
The source path’s final slash changes what becomes the destination root:
| Command shape | Usual result |
|---|---|
rsync source/ dest/ |
Copies the contents of source into dest. |
rsync source dest/ |
Normally creates dest/source. |
Path shape can be surprising when a destination already exists, so run the exact command with --dry-run on your installed rsync and inspect the file list.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Preview updates and deletions
-n or --dry-run performs a trial run without making changes:
rsync -a --dry-run source/ destination/
--delete removes destination entries that are absent from the sender’s file list. It is not a harmless synchronization default:
rsync -a --delete --dry-run source/ destination/
Review the output, confirm both paths, and only then remove --dry-run. -x or --one-file-system prevents traversal across filesystem boundaries, which can stop a mounted volume inside the source tree from being copied unintentionally.
Filters are ordered and affect deletion
Rsync evaluates filter rules in order; the first matching rule wins. An exclude can also protect a destination file from deletion, because that file is excluded from the sender’s file list. If you intentionally want excluded destination entries deleted, select the deletion-excluded behavior explicitly and preview it first. Treat filter order and --delete as one design decision, not independent switches.
Recommended Free Tools
Choose the quick-check rule deliberately
By default, rsync decides whether a file needs updating from its size and modification time. -c changes that quick check to file checksums, which can detect same-size files with different contents but requires reading file data to calculate checksums.
Find: separate selection tests from actions
find starts at one or more paths and evaluates an expression for each filesystem entry. Tests narrow the set; actions do something with each selected entry.
find /var/log -type f -name '*.log' -print
-type f tests for regular files, and -name tests the filename pattern. The single quotes are important: they stop the shell from expanding *.log before find receives it.
Group alternatives safely
When combining alternatives, escape parentheses so the shell does not interpret them:
find . ( -name '*.jpg' -o -name '*.png' ) -print
Without escaped parentheses, the shell can consume the grouping characters and change the expression before find evaluates it.
Make filenames safe for downstream commands
Newlines, tabs, quotes and spaces are valid filename characters. Plain line-oriented output can therefore be ambiguous. Use null-delimited output and a null-aware consumer:
find . -type f -name '*.log' -print0 | xargs -0 -- some-command
Use the equivalent null-input option of the consumer you choose. This preserves filename boundaries instead of treating whitespace as a separator.
Preview before execution or deletion
Print the exact matches before adding an action such as -exec or -delete:
Rank #4
find /tmp -type f -name '*.tmp' -print
Only after checking that list should you construct the side-effecting command. -delete is inherently destructive and imposes directory-traversal constraints; keep a print-only version available as your rollback check. The expression model also means that adding an action changes what happens for every entry that reaches that point, so place tests before actions and group complex conditions explicitly.
Sort: keys, numeric rules and locale determine the order
GNU sort reads lines and writes them in order. With no -k, the whole line is the key. With -k, you specify fields and character positions; a key-specific modifier can override a global modifier.
Lexical order is not numeric order
printf '%sn' 10 2 1 | sort
printf '%sn' 10 2 1 | sort -n
The first command compares text, so 10 can appear before 2. -n performs numeric comparison. For values such as 1K, 2M and 900, -h interprets human-readable suffixes instead.
State the field and locale
For a whitespace-separated report whose second field is a number, make the key boundaries explicit:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutesort -k2,2n report.txt
Comparisons use the LC_COLLATE locale. Case and accent ordering can therefore differ between machines. For reproducible scripts, set an intentional locale such as LC_ALL=C and state the key and numeric mode:
Best Value
LC_ALL=C sort -k2,2n report.txt
-s keeps the original order of records whose keys compare equal. -u suppresses duplicate output as well as applying its comparison rule, so do not use it when equal-key records must be retained.
Inspect and verify the result
--debug marks how keys were interpreted, which helps reveal a wrong field boundary or modifier. --check verifies whether input is already sorted and reports failure through its exit status, making it suitable for scripts. GNU sort supplies a missing final newline and imposes no GNU-specific input-line-length limit.
Tar: identify the operation before reading the modifiers
Tar’s operation letters are verbs. Decode the operation first, then inspect compression and file-selection options.
| Operation | Meaning | Typical command |
|---|---|---|
-c / --create |
Make a new archive | tar -cf backup.tar project/ |
-x / --extract |
Unpack archive members | tar -xf backup.tar |
-t / --list |
Display archive members | tar -tf backup.tar |
-r / --append |
Add files to an archive | tar -rf backup.tar notes.txt |
-d extrm{ / }--compare |
Compare members with the filesystem | tar -df backup.tar |
--delete |
Remove named members from an archive | Use only after checking implementation limits; it is not for archives on tape. |
Creation and extraction are separate from compression. A tar archive packages members; gzip, bzip2 or xz compresses the archive, either through a separate pipeline or a corresponding tar compression option. A filename ending in .tar.gz therefore describes both an archive format and compression, not a different operation letter.
List before extracting
Inspect an unfamiliar archive first:
tar -tf incoming.tar
Then extract into a directory you created for that purpose:
mkdir -p review-dir
tar -xf incoming.tar -C review-dir
Archives from untrusted sources deserve extra scrutiny for path names that could escape the intended directory. Safe-extraction behavior and protective options differ by tar implementation and platform, so review the local tar manual rather than assuming every GNU option exists elsewhere.
A safer workflow for all four commands
- Identify the input shape: paths, filesystem entries, text lines or archive members.
- Read the operation letter or primary action before interpreting modifiers.
- Make matching rules explicit: quote shell patterns, define sort keys and locale, and check rsync’s trailing slash.
- Preview side effects: rsync
--dry-run, find print-only output, sort--check/--debug, and tar--list. - Run the final command only after checking scope, destination and implementation-specific behavior.
That sequence prevents the most expensive category errors: treating archive mode as total metadata preservation, allowing a shell to rewrite a find pattern, sorting numbers as text, or extracting and deleting before you have inspected what the command will touch.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

