busybox-w32 version FRP-5181-g5c1a3b00e was released on 2023-08-18. It is the current release. For other release notes see:
Some things to note:
As to actually using the binary:
~ $ busybox | head -2 BusyBox v1.37.0-FRP-5181-g5c1a3b00e (2023-08-18 12:18:42 BST) (mingw64-gcc 12.2.1-8.fc38; mingw64-crt 10.0.0-4.fc38; glob; Unicode)
Unicode support is largely the work of Avi Halachmi (@avih on GitHub), to whom all praise should be addressed. (Complaints, blame and other invective should fall to me, as usual ;-)
BB_OVERRIDE_APPLETSwas introduced in release FRP-4716 as a way to replace internal applets with external commands. This release extends the feature:
export BB_OVERRIDE_APPLETS=";make"results in the internal
makeapplet being used only if no external
makebinary is present on
(GitHub issue #329)
winxp option affects the import of environment variables
by the shell. Since Windows XP is particularly fussy about the presence of
backslashes in environment variables the
winxp option was
added to prevent backslashes from being converted into forward slashes
winxpcould only be set with the
-Xcommand line option, which had be the first provided. These restrictions have been lifted:
winxpcan be altered from within a shell with the
-Xno longer has be the first item on the command line.
winxpwithin a shell will switch between forward slashes and backslashes in shell variables, but only in those variables which were imported from a native Windows environment. This requires the shell to track the origin of its variables. This tracking persists in a subshell but not when the variables are exported back to the environment of a new process.
noconsole option tries to hide the console window that
appears when a busybox-w32 shell is run from a GUI application.
noconsolecould only be set on the shell command line; it can now be set (or unset) within a shell with the
set -o noconsoleand
set +o noconsolecommands.
noconsoleis set the shell is minimised rather than hidden.
(GitHub issues #322, #325)
lsapplet follows both Unix and Windows conventions for hidden files:
Some hidden files on Windows also have the 'system' attribute set. These
are likely to be of little interest to users and many of them have ugly,
long names. The display of such 'hidden system' files can be disabled by
-A options more than once.
For example, as
ls -a -a or
Since duplicate options are ignored in other implementations of
this idiom is portable.
(GitHub issue #328)
examples/mswin-buildin the source tree contains scripts to replicate how release and pre-release binary are cross-compiled. (GitHub issue #330)
~/AppData/Local/Microsoft/WindowsAppsare a special type of reparse point which wasn't properly handled by busybox-w32. They're now treated as a form of symbolic link by most applets.
lsattrdisplays them with the
~/AppData/Local/Microsoft/WindowsApps $ lsattr python.exe A-------a-- python.exe(GitHub issue #327)
dateapplet now supports the
-soption to set the system time. This requires elevated privileges.
diffin release FRP-4882 gave incorrect results when files with CRLF line-endings were compared and the
--binaryoption wasn't used. This has been fixed, though there are still inconsistencies when files with different line-endings are compared. (GitHub issue #348)
trapshell built-ins. Unfortunately, busybox-w32 users were unable to benefit from these changes due to deficiencies in the shell. These have been addressed so
trapcan now be used in the context of command substitution, process substitution and pipelines. (GitHub issue #350)
awkand support for maths in the shell.