Build a find command without memorizing flags
The Linux find command is the most useful thing in a shell, and the most painful to remember. "Was it -mtime -7 or +7? Does -size +100M mean bigger or smaller? How do I delete results safely?" Every time you need it you end up googling the same Stack Overflow answer from 2012.
This builder is the opposite. You click what you want (path, name pattern, file type, size, modification time, action) and the command appears on the right, ready to copy. No execution, no risk: this is a builder, not a runner. The command runs only when you paste it into your own terminal, where you can read it first.
What you can build:
- search a folder by glob (`*.log`, `*.tmp`), name, path or regex
- filter by type (file, directory, symlink, block device)
- filter by size (`-size +100M` = bigger than 100 megabytes)
- filter by time (`-mtime -7` = changed in the last 7 days)
- filter by owner, group, permissions, empty / executable / readable / writable
- choose an action: print, print null-terminated for `xargs -0`, delete, run a command per match, or batch a command across matches
The preview also shows a simulated sample output so you can see what the command would match before you run it on real data.
How to use it
- Type the starting path in "Where to search". Default is . (the current folder). Use /var/log for system logs, ~/Downloads for your downloads folder, or / for the whole system (slow, root permissions usually required).
- Turn on the section you need (each panel has its own switch). You do not have to fill in every section, only the ones that matter for the search.
- Pick a name pattern: type something like `*.log` and choose the mode. \-name is the most common (case-sensitive glob). \-iname ignores case. \-path matches the full path including folders. \-regex matches a regular expression.
- Pick a file type with the chip row: file, directory, symlink. You can select multiple types at once (find treats them as OR).
- Set the size filter. Comparison: = exact, > larger than, < smaller than. Pick a unit: c (bytes), k (kilobytes), M (megabytes), G (gigabytes). Example: `-size +100M` finds files larger than 100 megabytes.
- Set the time filter. Choose modified (\-mtime), accessed (\-atime) or changed (\-ctime), then pick a unit (minutes / hours / days) and a number. \-mtime -7 means "modified in the last 7 days".
- Pick an action: \-print (the default, prints paths), \-print0 (null-terminated, for piping to `xargs -0`), \-delete (deletes matches, dangerous, big red warning shown), or \-exec ... \; to run a command per match. Use {} as the placeholder for each matched path.
- Copy the command from the preview pane on the right. Open your terminal, paste, read what it does, then press Enter. The builder never executes anything.
When this is useful
Six places where you reach for find and never want to memorize the flags again:
- Cleaning up old logs. Your disk is full and `/var/log` is suspicious. You want everything older than 90 days that ends in .log: `find /var/log -type f -name "*.log" -mtime +90 -delete`. The builder produces it in 4 clicks, you read it first to make sure you did not write -mtime -90 by accident.
- Finding huge files eating your disk. `df` says the drive is 90% full but you have no idea which folder is responsible. You ask for all files larger than 1 GB anywhere on the system: `find / -type f -size +1G`. Sort by size, attack the worst offenders.
- Listing what changed today. You ran an installer or a build script and you want to know what files it touched. `find / -type f -mtime -1` lists everything modified in the last 24 hours. Useful for debugging, security audits, and tracking down "where did this config come from".
- Bulk-renaming or processing files. You want to convert every .heic image to .jpg: `find ~/Photos -name "*.heic" -print0 | xargs -0 -I {} convert {} {}.jpg`. The \-print0 plus `xargs -0` combo is the safe way: it handles file names with spaces, quotes and unicode without breaking.
- Cleaning empty directories. After a big move some folders are left empty. `find . -type d -empty -delete` removes them in one shot. The builder shows you the exact command before you run it.
- Finding files with the wrong permissions. Your web server is throwing 403s because some files are not world-readable. `find /var/www -type f ! -perm -044` lists files where "others" cannot read. Fix them with a follow-up `chmod`.