🎯 Preset
{{ currentPresetDescription }}
🧰 Tool
{{ currentToolDef.description }}
⚡ Quick example
📝 Parameters
{{ field.description }}
📤 Generated command
{{ command || '# Pick a tool and fill in parameters to generate a command.' }}
⚠️ Warnings
- {{ w }}
📁 Files this command reads / writes
- {{ f.name }} [{{ f.role }}] — {{ f.description }}
📖 Flag-by-flag explanation
| Flag | Meaning |
|---|---|
| {{ e.flag }} | {{ e.meaning }} |
ℹ️ About Linux Command Builder
What this builder does
The Linux Command Builder assembles invocations for the eleven utilities you reach for
on the command line every day: find, grep, sed,
awk, rsync, tar, curl,
ssh, scp, ffmpeg, and ImageMagick's
convert. Pick a tool, fill the relevant fields, and the page emits a
shell-quoting-safe command line, a per-flag explanation table, a list of files the
command will read or write, and warnings for destructive or insecure choices.
The page never executes the command — it only generates the text. Copy the result into your own shell to run it. Every user-supplied path, pattern, or value is single-quoted (POSIX style) so that a malformed payload cannot produce a broken or unsafe command.
Tools this builder covers
- find — recursive tree walk with name/type/size/mtime filters and
-print/-print0/-delete/-execactions. - grep — content search with recursive (
-r), case-insensitive (-i), line numbers (-n), counts (-c), invert (-v), context (-C), regex (-E) and fixed-string (-F) modes. - sed — stream editor with in-place (
-i) editing, backup suffix, extended regex (-E), and quiet (-n) modes. - awk — pattern/action programs with custom field separator
(
-F). - rsync — archive mode (
-a), delete extras (--delete), dry-run, excludes, SSH key + non-default port. - tar — create / extract / list with gzip, bzip2, xz, or zstd
compression; exclude patterns;
--strip-components. - curl — full HTTP control: method, headers, body, basic / bearer auth, redirects, max-time, output file, verbose / silent / insecure flags.
- ssh — identity file, non-default port, local / remote / dynamic port forwarding, agent forwarding, host-key checks, verbose mode, remote command.
- scp — recursive, preserve modes, non-default port (uppercase
-P), identity file, compression. - ffmpeg — input/output paths, video / audio codec, bitrate, scale, start time, duration, strip audio or video.
- ImageMagick convert — resize, quality, rotate, blur, grayscale, strip metadata, format conversion.
Warnings the builder surfaces
- find -delete is destructive — preview matches with
-printfirst; there is no recycle bin. - rsync --delete will erase files in the destination that are absent
from the source — always pair with
--dry-runon the first run. - curl -k disables TLS verification entirely; only use it against local self-signed test endpoints.
- ssh -i with a permissive key file mode is rejected by OpenSSH —
chmod 600the key first. - sed -i without a backup suffix is GNU-only; on macOS / BSD use
-i ''(empty argument) or supply a backup suffix like.bak. - rsync source without trailing slash copies the directory itself, not its contents — a common foot-gun.
- scp uses uppercase
-Pfor port; ssh uses lowercase-p— easy to confuse.
Shell-quoting rules used by this tool
Every user-supplied value passes through a POSIX-safe single-quote escape: empty
strings become '', alphanumeric / dot / dash / underscore / slash / colon
/ at / percent / plus / equals are passed through verbatim, and anything else is wrapped
in single quotes with embedded single quotes escaped via the close-quote /
literal-quote / open-quote idiom (O'Reilly →
'O'\''Reilly'). This keeps the generated commands safe to copy/paste into
any POSIX shell.
Source references
- find(1) — file search.
- grep(1) — content search.
- sed(1) — stream editor.
- awk(1) / gawk(1) — text processing language.
- rsync(1) — fast incremental sync.
- tar(1) — archive utility.
- curl(1) — HTTP / data transfer client.
- ssh(1) — OpenSSH client.
- scp(1) — secure copy over SSH.
- ffmpeg(1) — audio / video transcoder.
- ImageMagick convert(1) — image manipulation.
API Usage Example:
POST /api/tools/linux/linux-command-builder
Content-Type: application/json
{
"tool": "find",
"fields": {
"path": ".",
"size": "+100M",
"mtime": "-7",
"fileType": "f"
}
}