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 iflag=skip_bytes| yes | |
182 dd Busybox specific options:
186 option | exists | compliant | remarks
190 df Busybox specific options:
191 -a, -m, -B SIZE, -i, -h
193 - It seems that GNU df does not round percents up in its output (thus its results are a bit different)
196 option | exists | compliant | remarks
205 diff Busybox specific options:
206 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
208 dirname POSIX options: None
209 dirname Busybox specific options: None
212 option | exists | compliant | remarks
219 du Busybox specific options:
223 echo POSIX options: None
224 option | exists | compliant | remarks
225 -n | yes | yes | The result of -n is "implementation-defined"
226 echo Busybox specific options:
230 option | exists | compliant | remarks
231 -p string | no | no |
233 ed Busybox specific options: None
236 option | exists | compliant | remarks
238 env Busybox specific options:
242 option | exists | compliant | remarks
243 -t tablist | yes | yes |
244 expand Busybox specific options:
245 --tabs=N, -i, --initial
247 expr POSIX operations:
248 option | exists | compliant | remarks
264 integer | yes | yes |
266 expr Busybox specific operations:
267 match, substr, index, length, quote
269 false POSIX options: None
270 false Busybox specific options: None
273 option | exists | compliant | remarks
276 find Busybox specific options:
277 -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]
280 option | exists | compliant | remarks
283 -w width | yes | yes |
284 fold Busybox specific options: None
287 option | exists | compliant | remarks
291 fuser Busybox specific options:
292 -m, -k, -4, -SIGNAL, -6, -s
295 option | exists | compliant | remarks
299 -e pattern_list | yes | |
300 -f pattern_file | yes | |
308 grep Busybox specific options:
309 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
312 option | exists | compliant | remarks
313 -n number | yes | yes |
314 head Busybox specific options:
318 option | exists | compliant | remarks
324 id Busybox specific options:
328 option | exists | compliant | remarks
329 -M shmkey | no | no |
330 -Q msgkey | no | no |
331 -S semkey | no | no |
335 ipcrm Busybox specific options:
339 option | exists | compliant | remarks
349 ipcs Busybox specific options:
353 option | exists | compliant | remarks
355 -s signal_name | yes | yes |
356 -signal_name | yes | yes |
357 -signal_number | yes | yes |
358 kill Busybox specific options:
362 option | exists | compliant | remarks
367 ln Busybox specific options:
370 logger POSIX options: None
371 logger Busybox specific options:
374 logname POSIX options: None
375 logname Busybox specific options: None
378 option | exists | compliant | remarks
382 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
384 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
388 -c | yes | no | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
389 -d | yes | no | When invoked together with '-L' should read symbolic links, and doesn't
393 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
396 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
405 ls Busybox specific options:
406 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
409 option | exists | compliant | remarks
411 man Busybox specific options:
415 mesg POSIX options: None
416 mesg Busybox specific options: None
419 option | exists | compliant | remarks
420 -m mode | yes | yes |
422 mkdir Busybox specific options:
426 option | exists | compliant | remarks
427 -m mode | yes | yes |
428 mkfifo Busybox specific options:
432 option | exists | compliant | remarks
436 -n number | no | no |
437 -p command | no | no |
439 -t tagstring | no | no |
441 more Busybox specific options: None
444 option | exists | compliant | remarks
447 mv Busybox specific options: None
450 option | exists | compliant | remarks
451 -n increment | yes | yes |
452 nice Busybox specific options: None
454 nohup POSIX options: None
455 nohup Busybox specific options: None
458 option | exists | compliant | remarks
459 -A address_base | no | no |
467 -t type_string | no | no |
470 od Busybox specific options: None
473 option | exists | compliant | remarks
474 -d list | yes | yes |
476 paste Busybox specific options: None
479 option | exists | compliant | remarks
480 -D define | no | no |
487 -i patchfile | yes | yes |
490 -o outfile | no | no |
492 -r rejectfile | no | no |
494 patch Busybox specific options: None
496 printf POSIX options: None
497 printf Busybox specific options: None
500 option | exists | compliant | remarks
502 -G grouplist | no | no |
503 -U userlist | no | no |
508 -g grouplist | no | no |
510 -n namelist | no | no |
511 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
512 -p proclist | no | no |
513 -t termlist | no | no |
514 -u userlist | no | no |
515 ps Busybox specific options: None
518 option | exists | compliant | remarks
521 pwd Busybox specific options: None
524 option | exists | compliant | remarks
526 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
529 renice Busybox specific options: None
532 option | exists | compliant | remarks
537 rm Busybox specific options: None
540 option | exists | compliant | remarks
542 rmdir Busybox specific options:
546 option | exists | compliant | remarks
548 -f script_file | yes | |
550 sed Busybox specific options:
554 option | exists | compliant | remarks
558 sh Busybox specific options: None
560 sleep POSIX options: None
561 sleep Busybox specific options: None
564 option | exists | compliant | remarks
570 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
574 -o output | yes | yes |
578 sort Busybox specific options:
582 option | exists | compliant | remarks
583 -a suffix_length | yes | yes |
587 -l line_count | yes | yes |
588 split Busybox specific options: None
590 strings POSIX options
591 option | exists | compliant | remarks
593 -n number | yes | yes |
594 -t format | no | no |
595 strings Busybox specific options:
599 option | exists | compliant | remarks
602 stty Busybox specific options:
606 option | exists | compliant | remarks
607 -c number | yes | yes |
609 -n number | yes | yes |
610 tail Busybox specific options:
614 option | exists | compliant | remarks
617 tee Busybox specific options: None
619 test POSIX options: None
620 test Busybox specific options: None
623 option | exists | compliant | remarks
625 time Busybox specific options:
629 option | exists | compliant | remarks
632 -d date_time | no | no |
634 -r ref_file | no | no |
636 touch Busybox specific options: None
639 option | exists | compliant | remarks
644 tr Busybox specific options: None
646 true POSIX options: None
647 true Busybox specific options: None
649 tty POSIX options: None
650 tty Busybox specific options:
654 option | exists | compliant | remarks
661 uname Busybox specific options:
664 uncompress POSIX options
665 option | exists | compliant | remarks
669 uncompress Busybox specific options: None
671 unexpand POSIX options
672 option | exists | compliant | remarks
673 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
674 -t tablist | yes | yes |
675 unexpand Busybox specific options:
676 --tabs=N, -f, --first-only, --all
679 option | exists | compliant | remarks
682 -f fields | yes | yes |
683 -s chars | yes | yes |
685 uniq Busybox specific options:
688 uudecode POSIX options
689 option | exists | compliant | remarks
690 -o outfile | no | no |
691 uudecode Busybox specific options: None
693 uuencode POSIX options
694 option | exists | compliant | remarks
696 uuencode Busybox specific options: None
699 option | exists | compliant | remarks
703 -t tagstring | no | no |
705 vi Busybox specific options:
709 option | exists | compliant | remarks
714 wc Busybox specific options:
718 option | exists | compliant | remarks
721 -a | yes | no | just shows all
732 who Busybox specific options: None
735 option | exists | compliant | remarks
736 -E eofstr | no | no |
737 -I replstr | no | no |
738 -L number | no | no |
739 -n number | yes | yes |
741 -s size | yes | yes |
744 xargs Busybox specific options:
747 zcat POSIX options: None
748 zcat Busybox specific options: None