2 Busybox POSIX conformance table
4 See POSIX documentation (1003.1-2008) here:
5 http://www.opengroup.org/onlinepubs/9699919799/
6 And the complete list of all utilities that POSIX covers:
7 http://www.opengroup.org/onlinepubs/9699919799/idx/utilities.html
9 This listing is a work in progress, and currently only covers
10 tool options (not operands, environment variables, return codes, etc..).
11 For each option it is set if it (a) exists and (b) compliant to POSIX 2008.
12 Some options exist but there is no value in the 'compliant' column: that
13 means no one has yet bothered to make sure that the option does what it is
16 -----------------------------------------------
18 POSIX Tools supported only as shell built-ins (ash shell):
19 alias, bg, cd, fg, getopts, hash, jobs, read, type, umask, ulimit,
22 POSIX Tools not supported:
23 asa, at, batch, bc, c99, command, compress, csplit, ex, fc, file,
24 gencat, getconf, iconv, join, link, locale, localedef, lp, m4,
25 mailx, newgrp, nl, pathchk, pax, pr, qalter, qdel, qhold, qmove,
26 qmsg, qrerun, qrls, qselect, qsig, qstat, qsub, tabs, talk, tput,
27 tsort, unlink, uucp, uustat, uux
29 POSIX Tools not supported (DEVELOPMENT):
30 admin, cflow, ctags, cxref, delta, fort77, get, lex, make, nm, prs, rmdel,
31 sact, sccs, strip, unget, val, what, yacc
34 POSIX Tools supported:
36 Note: echo, printf, kill, pwd documented here as stand-alone applets,
40 ar POSIX options ********************* Failed to recognize zip & tar (did not compare to regular ar)
41 option | exists | compliant | remarks
58 ar Busybox specific options:
62 option | exists | compliant | remarks
65 -v assignment | yes | |
66 awk Busybox specific options: None
68 basename POSIX options: None
69 basename Busybox specific options: None
71 cal POSIX options: None
72 cal Busybox specific options:
76 option | exists | compliant | remarks
77 -u | yes | no | option is ignored
78 cat Busybox specific options: None
81 option | exists | compliant | remarks
87 chgrp Busybox specific options:
91 option | exists | compliant | remarks
93 chmod Busybox specific options:
96 chown POSIX options *********************************************
97 option | exists | compliant | remarks
98 -H | yes | | It seems like all flags are supported (according to printout), but
99 -L | yes | | it fails to work on my machine
103 chown Busybox specific options:
106 cksum POSIX options: None
107 cksum Busybox specific options: None
110 option | exists | compliant | remarks
113 cmp Busybox specific options:
117 option | exists | compliant | remarks
121 comm Busybox specific options: None
124 option | exists | compliant | remarks
132 cp Busybox specific options:
133 -d, -a, -s, -c, -r, -l
135 crontab POSIX options
136 option | exists | compliant | remarks
140 crontab Busybox specific options:
144 option | exists | compliant | remarks
145 -b list | yes | yes |
146 -c list | yes | yes |
147 -d delim | yes | yes |
148 -f list | yes | yes |
151 cut Busybox specific options: None
154 option | exists | compliant | remarks
156 date Busybox specific options:
157 -I[SPEC], -d TIME, -r FILE, -R, -D FMT
160 option | exists | compliant | remarks
170 conv=ascii | no | no |
171 conv=ebcdic | no | no |
173 conv=block | no | no |
174 conv=unblock | no | no |
175 conv=lcase | no | no |
176 conv=ucase | no | no |
177 conv=swap | no | no |
178 conv=noerror | yes | |
179 conv=notrunc | yes | |
181 dd compatibility options:
183 iflag=skip_bytes| yes | |
184 iflag=fullblock | yes | |
185 oflag=seek_bytes| yes | |
188 option | exists | compliant | remarks
192 df Busybox specific options:
193 -a, -m, -B SIZE, -i, -h
195 - It seems that GNU df does not round percents up in its output (thus its results are a bit different)
198 option | exists | compliant | remarks
207 diff Busybox specific options:
208 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
210 dirname POSIX options: None
211 dirname Busybox specific options: None
214 option | exists | compliant | remarks
221 du Busybox specific options:
225 echo POSIX options: None
226 option | exists | compliant | remarks
227 -n | yes | yes | The result of -n is "implementation-defined"
228 echo Busybox specific options:
232 option | exists | compliant | remarks
233 -p string | no | no |
235 ed Busybox specific options: None
238 option | exists | compliant | remarks
240 env Busybox specific options:
244 option | exists | compliant | remarks
245 -t tablist | yes | yes |
246 expand Busybox specific options:
247 --tabs=N, -i, --initial
249 expr POSIX operations:
250 option | exists | compliant | remarks
266 integer | yes | yes |
268 expr Busybox specific operations:
269 match, substr, index, length, quote
271 false POSIX options: None
272 false Busybox specific options: None
275 option | exists | compliant | remarks
278 find Busybox specific options:
279 -group NAME, -mtime DAYS, -print, -maxdepth N, -exec CMD ARG ;, -newer FILE, -context, -iname PATTERN, -follow, -depth, -xdev, -inum N, -type X, -print0, -mindepth N, -mmin MINS, -regex PATTERN, -prune, -path PATTERN, -user NAME, -delete, -perm NNN, -name PATTERN, -size N[bck]
282 option | exists | compliant | remarks
285 -w width | yes | yes |
286 fold Busybox specific options: None
289 option | exists | compliant | remarks
293 fuser Busybox specific options:
294 -m, -k, -4, -SIGNAL, -6, -s
297 option | exists | compliant | remarks
301 -e pattern_list | yes | |
302 -f pattern_file | yes | |
310 grep Busybox specific options:
311 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
314 option | exists | compliant | remarks
315 -n number | yes | yes |
316 head Busybox specific options:
320 option | exists | compliant | remarks
326 id Busybox specific options:
330 option | exists | compliant | remarks
331 -M shmkey | no | no |
332 -Q msgkey | no | no |
333 -S semkey | no | no |
337 ipcrm Busybox specific options:
341 option | exists | compliant | remarks
351 ipcs Busybox specific options:
355 option | exists | compliant | remarks
357 -s signal_name | yes | yes |
358 -signal_name | yes | yes |
359 -signal_number | yes | yes |
360 kill Busybox specific options:
364 option | exists | compliant | remarks
369 ln Busybox specific options:
372 logger POSIX options: None
373 logger Busybox specific options:
376 logname POSIX options: None
377 logname Busybox specific options: None
380 option | exists | compliant | remarks
384 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
386 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
390 -c | yes | no | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
391 -d | yes | no | When invoked together with '-L' should read symbolic links, and doesn't
395 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
398 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
407 ls Busybox specific options:
408 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
411 option | exists | compliant | remarks
413 man Busybox specific options:
417 mesg POSIX options: None
418 mesg Busybox specific options: None
421 option | exists | compliant | remarks
422 -m mode | yes | yes |
424 mkdir Busybox specific options:
428 option | exists | compliant | remarks
429 -m mode | yes | yes |
430 mkfifo Busybox specific options:
434 option | exists | compliant | remarks
438 -n number | no | no |
439 -p command | no | no |
441 -t tagstring | no | no |
443 more Busybox specific options: None
446 option | exists | compliant | remarks
449 mv Busybox specific options: None
452 option | exists | compliant | remarks
453 -n increment | yes | yes |
454 nice Busybox specific options: None
456 nohup POSIX options: None
457 nohup Busybox specific options: None
460 option | exists | compliant | remarks
461 -A address_base | no | no |
469 -t type_string | no | no |
472 od Busybox specific options: None
475 option | exists | compliant | remarks
476 -d list | yes | yes |
478 paste Busybox specific options: None
481 option | exists | compliant | remarks
482 -D define | no | no |
489 -i patchfile | yes | yes |
492 -o outfile | no | no |
494 -r rejectfile | no | no |
496 patch Busybox specific options: None
498 printf POSIX options: None
499 printf Busybox specific options: None
502 option | exists | compliant | remarks
504 -G grouplist | no | no |
505 -U userlist | no | no |
510 -g grouplist | no | no |
512 -n namelist | no | no |
513 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
514 -p proclist | no | no |
515 -t termlist | no | no |
516 -u userlist | no | no |
517 ps Busybox specific options: None
520 option | exists | compliant | remarks
523 pwd Busybox specific options: None
526 option | exists | compliant | remarks
528 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
531 renice Busybox specific options: None
534 option | exists | compliant | remarks
539 rm Busybox specific options: None
542 option | exists | compliant | remarks
544 rmdir Busybox specific options:
548 option | exists | compliant | remarks
550 -f script_file | yes | |
552 sed Busybox specific options:
556 option | exists | compliant | remarks
560 sh Busybox specific options: None
562 sleep POSIX options: None
563 sleep Busybox specific options: None
566 option | exists | compliant | remarks
572 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
576 -o output | yes | yes |
580 sort Busybox specific options:
584 option | exists | compliant | remarks
585 -a suffix_length | yes | yes |
589 -l line_count | yes | yes |
590 split Busybox specific options: None
592 strings POSIX options
593 option | exists | compliant | remarks
595 -n number | yes | yes |
596 -t format | no | no |
597 strings Busybox specific options:
601 option | exists | compliant | remarks
604 stty Busybox specific options:
608 option | exists | compliant | remarks
609 -c number | yes | yes |
611 -n number | yes | yes |
612 tail Busybox specific options:
616 option | exists | compliant | remarks
619 tee Busybox specific options: None
621 test POSIX options: None
622 test Busybox specific options: None
625 option | exists | compliant | remarks
627 time Busybox specific options:
631 option | exists | compliant | remarks
634 -d date_time | no | no |
636 -r ref_file | no | no |
638 touch Busybox specific options: None
641 option | exists | compliant | remarks
646 tr Busybox specific options: None
648 true POSIX options: None
649 true Busybox specific options: None
651 tty POSIX options: None
652 tty Busybox specific options:
656 option | exists | compliant | remarks
663 uname Busybox specific options:
666 uncompress POSIX options
667 option | exists | compliant | remarks
671 uncompress Busybox specific options: None
673 unexpand POSIX options
674 option | exists | compliant | remarks
675 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
676 -t tablist | yes | yes |
677 unexpand Busybox specific options:
678 --tabs=N, -f, --first-only, --all
681 option | exists | compliant | remarks
684 -f fields | yes | yes |
685 -s chars | yes | yes |
687 uniq Busybox specific options:
690 uudecode POSIX options
691 option | exists | compliant | remarks
692 -o outfile | no | no |
693 uudecode Busybox specific options: None
695 uuencode POSIX options
696 option | exists | compliant | remarks
698 uuencode Busybox specific options: None
701 option | exists | compliant | remarks
705 -t tagstring | no | no |
707 vi Busybox specific options:
711 option | exists | compliant | remarks
716 wc Busybox specific options:
720 option | exists | compliant | remarks
723 -a | yes | no | just shows all
734 who Busybox specific options: None
737 option | exists | compliant | remarks
738 -E eofstr | no | no |
739 -I replstr | no | no |
740 -L number | no | no |
741 -n number | yes | yes |
743 -s size | yes | yes |
746 xargs Busybox specific options:
749 zcat POSIX options: None
750 zcat Busybox specific options: None