. oooo .o8
.o8 `888 "888
.o888oo .ooooo. .ooooo. 888 888oooo. .ooooo. oooo ooo
888 d88' `88b d88' `88b 888 d88' `88b d88' `88b `88b..8P'
888 888 888 888 888 888 888 888 888 888 Y888'
888 . 888 888 888 888 888 888 888 888 888 .o8"'88b
"888" `Y8bod8P' `Y8bod8P' o888o `Y8bod8P' `Y8bod8P' o88' 888otoolbox is a collection of Unix shell utilities for everyday use.
A website is available.
Each utility is a portable POSIX script built on the
shellbase shell framework:
-
bakwrapsrdiff-backupto create incremental backups. -
chownerchanges the owner and permissions of a directory. -
copyrightupdates years in copyright notices. -
cuexsplits a CD image (flac,ape,wav, orwv) into taggedflactracks using its cue sheet. The name stands for Cue Extract. Options:-esets the cue sheet encoding (for examplecp1251),-othe output directory, and-pkeeps the silent gap before track one. -
essidwatches the ESSID of the connected Wi-Fi network and reports changes. -
flactomp3converts audio files tomp3and keeps their tags. -
ivalvalidates image files. The name stands for Image Validation. -
myipcontinuously displays your external IP address usingdig. -
pingoadds timestamps topingoutput. -
reelconverts a video clip to a vertical 1080×1920 social media reel usingffmpegand pads it with a blurred copy of itself. Options:-ccenter-crops to fill the frame instead of padding,-fsets the input file,-othe output file,-sthe start time,-uthe duration, and-zthe horizontal crop shift in pixels (negative values allowed). -
remountremounts filesystems using a temporaryfstabconfiguration, then restores the permanent one. -
rsynxwrapsrsyncand picks a safe option set for the installedrsyncversion. -
scannerdetects whether a device with a given MAC address is on the local network usingarp-scan. -
siftcopies random files from a source directory to a destination directory until it reaches a byte budget. Options:-ssets the byte budget (a number with an optionalK,M, orGsuffix, default8G) and-othe destination directory (default: the current directory). The source directory is a required positional argument. -
speedcontinuously displays internet download and upload speeds usingspeedtest. -
texcompiles a TeX source file to PDF and opens the result. -
truremoves a torrent and its content, then adds it again to raise the share ratio. The name stands for Transmission Remote Updater. It can run undercron. -
ydatawrapsyt-dlp: it downloads, converts, renames, and stores media, and skips videos it already downloaded. It can run undercron.
The project builds with Daniel J. Bernstein’s redo.
You can use Sergey Matveev’s goredo implementation.
redo lint runs whichever of the following linters you have installed:
actionlint,
checkbashisms,
conform,
gitleaks,
reuse,
shellcheck,
shfmt,
typos,
vale,
yamllint,
zizmor.
It also parses every script with dash -n and mksh -n to catch syntax
errors and Bash-only constructs.
$ redo lint
20260803-14:02:01 » dash -n ./lint.do
20260803-14:02:01 » mksh -n ./lint.do
20260803-14:02:02 » shellcheck ./*.do ./app/*
# actionlint, checkbashisms, conform, gitleaks, reuse - not installed, nothing logged
20260803-14:02:04 shfmt failed, err=1.
20260803-14:02:05 » yamllint ./.github/*.yml ./.github/workflows/*.yml
OKDavid Rabkin holds the copyright to toolbox and distributes it
under the Zero-Clause BSD license.