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 | |
187 option | exists | compliant | remarks
191 df Busybox specific options:
192 -a, -m, -B SIZE, -i, -h
194 - It seems that GNU df does not round percents up in its output (thus its results are a bit different)
197 option | exists | compliant | remarks
206 diff Busybox specific options:
207 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
209 dirname POSIX options: None
210 dirname Busybox specific options: None
213 option | exists | compliant | remarks
220 du Busybox specific options:
224 echo POSIX options: None
225 option | exists | compliant | remarks
226 -n | yes | yes | The result of -n is "implementation-defined"
227 echo Busybox specific options:
231 option | exists | compliant | remarks
232 -p string | no | no |
234 ed Busybox specific options: None
237 option | exists | compliant | remarks
239 env Busybox specific options:
243 option | exists | compliant | remarks
244 -t tablist | yes | yes |
245 expand Busybox specific options:
246 --tabs=N, -i, --initial
248 expr POSIX operations:
249 option | exists | compliant | remarks
265 integer | yes | yes |
267 expr Busybox specific operations:
268 match, substr, index, length, quote
270 false POSIX options: None
271 false Busybox specific options: None
274 option | exists | compliant | remarks
277 find Busybox specific options:
278 -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]
281 option | exists | compliant | remarks
284 -w width | yes | yes |
285 fold Busybox specific options: None
288 option | exists | compliant | remarks
292 fuser Busybox specific options:
293 -m, -k, -4, -SIGNAL, -6, -s
296 option | exists | compliant | remarks
300 -e pattern_list | yes | |
301 -f pattern_file | yes | |
309 grep Busybox specific options:
310 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
313 option | exists | compliant | remarks
314 -n number | yes | yes |
315 head Busybox specific options:
319 option | exists | compliant | remarks
325 id Busybox specific options:
329 option | exists | compliant | remarks
330 -M shmkey | no | no |
331 -Q msgkey | no | no |
332 -S semkey | no | no |
336 ipcrm Busybox specific options:
340 option | exists | compliant | remarks
350 ipcs Busybox specific options:
354 option | exists | compliant | remarks
356 -s signal_name | yes | yes |
357 -signal_name | yes | yes |
358 -signal_number | yes | yes |
359 kill Busybox specific options:
363 option | exists | compliant | remarks
368 ln Busybox specific options:
371 logger POSIX options: None
372 logger Busybox specific options:
375 logname POSIX options: None
376 logname Busybox specific options: None
379 option | exists | compliant | remarks
383 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
385 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
389 -c | yes | no | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
390 -d | yes | no | When invoked together with '-L' should read symbolic links, and doesn't
394 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
397 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
406 ls Busybox specific options:
407 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
410 option | exists | compliant | remarks
412 man Busybox specific options:
416 mesg POSIX options: None
417 mesg Busybox specific options: None
420 option | exists | compliant | remarks
421 -m mode | yes | yes |
423 mkdir Busybox specific options:
427 option | exists | compliant | remarks
428 -m mode | yes | yes |
429 mkfifo Busybox specific options:
433 option | exists | compliant | remarks
437 -n number | no | no |
438 -p command | no | no |
440 -t tagstring | no | no |
442 more Busybox specific options: None
445 option | exists | compliant | remarks
448 mv Busybox specific options: None
451 option | exists | compliant | remarks
452 -n increment | yes | yes |
453 nice Busybox specific options: None
455 nohup POSIX options: None
456 nohup Busybox specific options: None
459 option | exists | compliant | remarks
460 -A address_base | no | no |
468 -t type_string | no | no |
471 od Busybox specific options: None
474 option | exists | compliant | remarks
475 -d list | yes | yes |
477 paste Busybox specific options: None
480 option | exists | compliant | remarks
481 -D define | no | no |
488 -i patchfile | yes | yes |
491 -o outfile | no | no |
493 -r rejectfile | no | no |
495 patch Busybox specific options: None
497 printf POSIX options: None
498 printf Busybox specific options: None
501 option | exists | compliant | remarks
503 -G grouplist | no | no |
504 -U userlist | no | no |
509 -g grouplist | no | no |
511 -n namelist | no | no |
512 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
513 -p proclist | no | no |
514 -t termlist | no | no |
515 -u userlist | no | no |
516 ps Busybox specific options: None
519 option | exists | compliant | remarks
522 pwd Busybox specific options: None
525 option | exists | compliant | remarks
527 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
530 renice Busybox specific options: None
533 option | exists | compliant | remarks
538 rm Busybox specific options: None
541 option | exists | compliant | remarks
543 rmdir Busybox specific options:
547 option | exists | compliant | remarks
549 -f script_file | yes | |
551 sed Busybox specific options:
555 option | exists | compliant | remarks
559 sh Busybox specific options: None
561 sleep POSIX options: None
562 sleep Busybox specific options: None
565 option | exists | compliant | remarks
571 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
575 -o output | yes | yes |
579 sort Busybox specific options:
583 option | exists | compliant | remarks
584 -a suffix_length | yes | yes |
588 -l line_count | yes | yes |
589 split Busybox specific options: None
591 strings POSIX options
592 option | exists | compliant | remarks
594 -n number | yes | yes |
595 -t format | no | no |
596 strings Busybox specific options:
600 option | exists | compliant | remarks
603 stty Busybox specific options:
607 option | exists | compliant | remarks
608 -c number | yes | yes |
610 -n number | yes | yes |
611 tail Busybox specific options:
615 option | exists | compliant | remarks
618 tee Busybox specific options: None
620 test POSIX options: None
621 test Busybox specific options: None
624 option | exists | compliant | remarks
626 time Busybox specific options:
630 option | exists | compliant | remarks
633 -d date_time | no | no |
635 -r ref_file | no | no |
637 touch Busybox specific options: None
640 option | exists | compliant | remarks
645 tr Busybox specific options: None
647 true POSIX options: None
648 true Busybox specific options: None
650 tty POSIX options: None
651 tty Busybox specific options:
655 option | exists | compliant | remarks
662 uname Busybox specific options:
665 uncompress POSIX options
666 option | exists | compliant | remarks
670 uncompress Busybox specific options: None
672 unexpand POSIX options
673 option | exists | compliant | remarks
674 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
675 -t tablist | yes | yes |
676 unexpand Busybox specific options:
677 --tabs=N, -f, --first-only, --all
680 option | exists | compliant | remarks
683 -f fields | yes | yes |
684 -s chars | yes | yes |
686 uniq Busybox specific options:
689 uudecode POSIX options
690 option | exists | compliant | remarks
691 -o outfile | no | no |
692 uudecode Busybox specific options: None
694 uuencode POSIX options
695 option | exists | compliant | remarks
697 uuencode Busybox specific options: None
700 option | exists | compliant | remarks
704 -t tagstring | no | no |
706 vi Busybox specific options:
710 option | exists | compliant | remarks
715 wc Busybox specific options:
719 option | exists | compliant | remarks
722 -a | yes | no | just shows all
733 who Busybox specific options: None
736 option | exists | compliant | remarks
737 -E eofstr | no | no |
738 -I replstr | no | no |
739 -L number | no | no |
740 -n number | yes | yes |
742 -s size | yes | yes |
745 xargs Busybox specific options:
748 zcat POSIX options: None
749 zcat Busybox specific options: None