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 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 | |
186 oflag=append | yes | |
189 option | exists | compliant | remarks
193 df Busybox specific options:
194 -a, -m, -B SIZE, -i, -h
196 - It seems that GNU df does not round percents up in its output (thus its results are a bit different)
199 option | exists | compliant | remarks
208 diff Busybox specific options:
209 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
211 dirname POSIX options: None
212 dirname Busybox specific options: None
215 option | exists | compliant | remarks
222 du Busybox specific options:
226 echo POSIX options: None
227 option | exists | compliant | remarks
228 -n | yes | yes | The result of -n is "implementation-defined"
229 echo Busybox specific options:
233 option | exists | compliant | remarks
234 -p string | no | no |
236 ed Busybox specific options: None
239 option | exists | compliant | remarks
241 env Busybox specific options:
245 option | exists | compliant | remarks
246 -t tablist | yes | yes |
247 expand Busybox specific options:
248 --tabs=N, -i, --initial
250 expr POSIX operations:
251 option | exists | compliant | remarks
267 integer | yes | yes |
269 expr Busybox specific operations:
270 match, substr, index, length, quote
272 false POSIX options: None
273 false Busybox specific options: None
276 option | exists | compliant | remarks
279 find Busybox specific options:
280 -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]
283 option | exists | compliant | remarks
286 -w width | yes | yes |
287 fold Busybox specific options: None
290 option | exists | compliant | remarks
294 fuser Busybox specific options:
295 -m, -k, -4, -SIGNAL, -6, -s
298 option | exists | compliant | remarks
302 -e pattern_list | yes | |
303 -f pattern_file | yes | |
311 grep Busybox specific options:
312 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
315 option | exists | compliant | remarks
316 -n number | yes | yes |
317 head Busybox specific options:
321 option | exists | compliant | remarks
327 id Busybox specific options:
331 option | exists | compliant | remarks
332 -M shmkey | no | no |
333 -Q msgkey | no | no |
334 -S semkey | no | no |
338 ipcrm Busybox specific options:
342 option | exists | compliant | remarks
352 ipcs Busybox specific options:
356 option | exists | compliant | remarks
358 -s signal_name | yes | yes |
359 -signal_name | yes | yes |
360 -signal_number | yes | yes |
361 kill Busybox specific options:
365 option | exists | compliant | remarks
370 ln Busybox specific options:
373 logger POSIX options: None
374 logger Busybox specific options:
377 logname POSIX options: None
378 logname Busybox specific options: None
381 option | exists | compliant | remarks
385 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
387 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
391 -c | yes | no | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
392 -d | yes | no | When invoked together with '-L' should read symbolic links, and doesn't
396 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
399 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
408 ls Busybox specific options:
409 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
412 option | exists | compliant | remarks
414 man Busybox specific options:
418 mesg POSIX options: None
419 mesg Busybox specific options: None
422 option | exists | compliant | remarks
423 -m mode | yes | yes |
425 mkdir Busybox specific options:
429 option | exists | compliant | remarks
430 -m mode | yes | yes |
431 mkfifo Busybox specific options:
435 option | exists | compliant | remarks
439 -n number | no | no |
440 -p command | no | no |
442 -t tagstring | no | no |
444 more Busybox specific options: None
447 option | exists | compliant | remarks
450 mv Busybox specific options: None
453 option | exists | compliant | remarks
454 -n increment | yes | yes |
455 nice Busybox specific options: None
457 nohup POSIX options: None
458 nohup Busybox specific options: None
461 option | exists | compliant | remarks
462 -A address_base | no | no |
470 -t type_string | no | no |
473 od Busybox specific options: None
476 option | exists | compliant | remarks
477 -d list | yes | yes |
479 paste Busybox specific options: None
482 option | exists | compliant | remarks
483 -D define | no | no |
490 -i patchfile | yes | yes |
493 -o outfile | no | no |
495 -r rejectfile | no | no |
497 patch Busybox specific options: None
499 printf POSIX options: None
500 printf Busybox specific options: None
503 option | exists | compliant | remarks
505 -G grouplist | no | no |
506 -U userlist | no | no |
511 -g grouplist | no | no |
513 -n namelist | no | no |
514 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
515 -p proclist | no | no |
516 -t termlist | no | no |
517 -u userlist | no | no |
518 ps Busybox specific options: None
521 option | exists | compliant | remarks
524 pwd Busybox specific options: None
527 option | exists | compliant | remarks
529 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
532 renice Busybox specific options: None
535 option | exists | compliant | remarks
540 rm Busybox specific options: None
543 option | exists | compliant | remarks
545 rmdir Busybox specific options:
549 option | exists | compliant | remarks
551 -f script_file | yes | |
553 sed Busybox specific options:
557 option | exists | compliant | remarks
561 sh Busybox specific options: None
563 sleep POSIX options: None
564 sleep Busybox specific options: None
567 option | exists | compliant | remarks
573 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
577 -o output | yes | yes |
581 sort Busybox specific options:
585 option | exists | compliant | remarks
586 -a suffix_length | yes | yes |
590 -l line_count | yes | yes |
591 split Busybox specific options: None
593 strings POSIX options
594 option | exists | compliant | remarks
596 -n number | yes | yes |
597 -t format | no | no |
598 strings Busybox specific options:
602 option | exists | compliant | remarks
605 stty Busybox specific options:
609 option | exists | compliant | remarks
610 -c number | yes | yes |
612 -n number | yes | yes |
613 tail Busybox specific options:
617 option | exists | compliant | remarks
620 tee Busybox specific options: None
622 test POSIX options: None
623 test Busybox specific options: None
626 option | exists | compliant | remarks
628 time Busybox specific options:
632 option | exists | compliant | remarks
635 -d date_time | no | no |
637 -r ref_file | no | no |
639 touch Busybox specific options: None
642 option | exists | compliant | remarks
647 tr Busybox specific options: None
649 true POSIX options: None
650 true Busybox specific options: None
652 tty POSIX options: None
653 tty Busybox specific options:
657 option | exists | compliant | remarks
664 uname Busybox specific options:
667 uncompress POSIX options
668 option | exists | compliant | remarks
672 uncompress Busybox specific options: None
674 unexpand POSIX options
675 option | exists | compliant | remarks
676 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
677 -t tablist | yes | yes |
678 unexpand Busybox specific options:
679 --tabs=N, -f, --first-only, --all
682 option | exists | compliant | remarks
685 -f fields | yes | yes |
686 -s chars | yes | yes |
688 uniq Busybox specific options:
691 uudecode POSIX options
692 option | exists | compliant | remarks
693 -o outfile | yes | no |
694 uudecode Busybox specific options: None
696 uuencode POSIX options
697 option | exists | compliant | remarks
699 uuencode Busybox specific options: None
702 option | exists | compliant | remarks
706 -t tagstring | no | no |
708 vi Busybox specific options:
712 option | exists | compliant | remarks
717 wc Busybox specific options:
721 option | exists | compliant | remarks
724 -a | yes | no | just shows all
735 who Busybox specific options: None
738 option | exists | compliant | remarks
739 -E eofstr | no | no |
740 -I replstr | no | no |
741 -L number | no | no |
742 -n number | yes | yes |
744 -s size | yes | yes |
747 xargs Busybox specific options:
750 zcat POSIX options: None
751 zcat Busybox specific options: None