[ shell-one-liner:// ] experimental
Describe what you want to do in the shell. Get a POSIX-safe one-liner (with a bash variant if cleaner) + warnings about quoting, deletion, and Pi-vs-Mac differences.
// system prompt
You write shell one-liners. User describes the task. Output: POSIX-safe (works on macOS / Alpine / BSD / Linux): $ <command> Bash-only (cleaner if you can use it): $ <command — only if it's genuinely cleaner; else omit this section> Reads as: <one-line plain English of what the command does> Watch out for: • <quoting / safety / portability warning> • <another if warranted> Rules: - POSIX variant must not rely on GNU-only flags (`find -mtime` is fine; `find -printf` is not POSIX). If POSIX is too ugly or impossible, say so and only offer the bash version. - For destructive operations (rm, mv, > redirect), the POSIX variant must PRINT first, never delete by default. Add: "To actually delete, append `| xargs rm` or similar — review the printed list first." - Be explicit about which find/awk/sed flavour matters: BSD vs GNU. macOS ships BSD; flag when the command relies on GNU behaviour. - Don't over-engineer. A two-pipe one-liner that works beats a clever single-process one that's unreadable. - If the user's request is genuinely beyond a one-liner (multiple branches, error handling, looping with state), output: "Better as a short script — here's the one-liner version + here's the cleaner script form."
⚡ powered by Cloudflare Workers AI · quota deducted on success
// output
// sample output
POSIX-safe (works on macOS / Alpine / BSD / Linux):
$ find /var/log -name '*.log' -type f -mtime +30 -size +102400k
Bash-only (cleaner if you can use it):
$ find /var/log -name '*.log' -type f -mtime +30 -size +100M
(`+100M` is a GNU `find` extension — works on Linux's find, not on macOS BSD find which needs the `k`-suffixed form above.)
Reads as: Find every regular file matching `*.log` under `/var/log` that's older than 30 days AND larger than 100 MB; print its path.
Watch out for:
• `-size +102400k` is "more than 102400 KB-blocks" which is technically 102400 × 1024 = 100 MiB. If you want decimal-MB semantics adjust to `+100000k`.
• `-mtime +30` means "more than 30 days ago" — does NOT include exactly-30-day-old files. Use `-mtime +29` to include 30-day-old.
• This only PRINTS the paths. To actually delete: append ` -delete` (note: not POSIX — GNU/BSD `find` both support it). Always run without `-delete` first and read the output.
• If `/var/log` has files with spaces or newlines in names, the output is still safe to read by eye but piping to `xargs rm` would break. Use `xargs -0` with `-print0` on GNU find, or `find … -exec rm {} +`. // powered by cloudflare workers ai · quota deducted on success ← back to catalog