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, paste, 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 Busybox specific options:
185 option | exists | compliant | remarks
189 df Busybox specific options:
190 -a, -m, -B SIZE, -i, -h
192 - It seems that GNU df does not round percents up in its output (thus its results are a bit different)
195 option | exists | compliant | remarks
204 diff Busybox specific options:
205 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
207 dirname POSIX options: None
208 dirname Busybox specific options: None
211 option | exists | compliant | remarks
218 du Busybox specific options:
222 echo POSIX options: None
223 option | exists | compliant | remarks
224 -n | yes | yes | The result of -n is "implementation-defined"
225 echo Busybox specific options:
229 option | exists | compliant | remarks
230 -p string | no | no |
232 ed Busybox specific options: None
235 option | exists | compliant | remarks
237 env Busybox specific options:
241 option | exists | compliant | remarks
242 -t tablist | yes | yes |
243 expand Busybox specific options:
244 --tabs=N, -i, --initial
246 expr POSIX operations:
247 option | exists | compliant | remarks
263 integer | yes | yes |
265 expr Busybox specific operations:
266 match, substr, index, length, quote
268 false POSIX options: None
269 false Busybox specific options: None
272 option | exists | compliant | remarks
275 find Busybox specific options:
276 -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]
279 option | exists | compliant | remarks
282 -w width | yes | yes |
283 fold Busybox specific options: None
286 option | exists | compliant | remarks
290 fuser Busybox specific options:
291 -m, -k, -4, -SIGNAL, -6, -s
294 option | exists | compliant | remarks
298 -e pattern_list | yes | |
299 -f pattern_file | yes | |
307 grep Busybox specific options:
308 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
311 option | exists | compliant | remarks
312 -n number | yes | yes |
313 head Busybox specific options:
317 option | exists | compliant | remarks
323 id Busybox specific options:
327 option | exists | compliant | remarks
328 -M shmkey | no | no |
329 -Q msgkey | no | no |
330 -S semkey | no | no |
334 ipcrm Busybox specific options:
338 option | exists | compliant | remarks
348 ipcs Busybox specific options:
352 option | exists | compliant | remarks
354 -s signal_name | yes | yes |
355 -signal_name | yes | yes |
356 -signal_number | yes | yes |
357 kill Busybox specific options:
361 option | exists | compliant | remarks
366 ln Busybox specific options:
369 logger POSIX options: None
370 logger Busybox specific options:
373 logname POSIX options: None
374 logname Busybox specific options: None
377 option | exists | compliant | remarks
381 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
383 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
387 -c | yes | no | Sorts output with '-l' (should only show ctime with '-l', and sort only with '-t')
388 -d | yes | no | When invoked together with '-L' should read symbolic links, and doesn't
392 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
395 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
404 ls Busybox specific options:
405 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
408 option | exists | compliant | remarks
410 man Busybox specific options:
414 mesg POSIX options: None
415 mesg Busybox specific options: None
418 option | exists | compliant | remarks
419 -m mode | yes | yes |
421 mkdir Busybox specific options:
425 option | exists | compliant | remarks
426 -m mode | yes | yes |
427 mkfifo Busybox specific options:
431 option | exists | compliant | remarks
435 -n number | no | no |
436 -p command | no | no |
438 -t tagstring | no | no |
440 more Busybox specific options: None
443 option | exists | compliant | remarks
446 mv Busybox specific options: None
449 option | exists | compliant | remarks
450 -n increment | yes | yes |
451 nice Busybox specific options: None
453 nohup POSIX options: None
454 nohup Busybox specific options: None
457 option | exists | compliant | remarks
458 -A address_base | no | no |
466 -t type_string | no | no |
469 od Busybox specific options: None
472 option | exists | compliant | remarks
473 -D define | no | no |
480 -i patchfile | yes | yes |
483 -o outfile | no | no |
485 -r rejectfile | no | no |
487 patch Busybox specific options: None
489 printf POSIX options: None
490 printf Busybox specific options: None
493 option | exists | compliant | remarks
495 -G grouplist | no | no |
496 -U userlist | no | no |
501 -g grouplist | no | no |
503 -n namelist | no | no |
504 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
505 -p proclist | no | no |
506 -t termlist | no | no |
507 -u userlist | no | no |
508 ps Busybox specific options: None
511 option | exists | compliant | remarks
514 pwd Busybox specific options: None
517 option | exists | compliant | remarks
519 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
522 renice Busybox specific options: None
525 option | exists | compliant | remarks
530 rm Busybox specific options: None
533 option | exists | compliant | remarks
535 rmdir Busybox specific options:
539 option | exists | compliant | remarks
541 -f script_file | yes | |
543 sed Busybox specific options:
547 option | exists | compliant | remarks
551 sh Busybox specific options: None
553 sleep POSIX options: None
554 sleep Busybox specific options: None
557 option | exists | compliant | remarks
563 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
567 -o output | yes | yes |
571 sort Busybox specific options:
575 option | exists | compliant | remarks
576 -a suffix_length | yes | yes |
580 -l line_count | yes | yes |
581 split Busybox specific options: None
583 strings POSIX options
584 option | exists | compliant | remarks
586 -n number | yes | yes |
587 -t format | no | no |
588 strings Busybox specific options:
592 option | exists | compliant | remarks
595 stty Busybox specific options:
599 option | exists | compliant | remarks
600 -c number | yes | yes |
602 -n number | yes | yes |
603 tail Busybox specific options:
607 option | exists | compliant | remarks
610 tee Busybox specific options: None
612 test POSIX options: None
613 test Busybox specific options: None
616 option | exists | compliant | remarks
618 time Busybox specific options:
622 option | exists | compliant | remarks
625 -d date_time | no | no |
627 -r ref_file | no | no |
629 touch Busybox specific options: None
632 option | exists | compliant | remarks
637 tr Busybox specific options: None
639 true POSIX options: None
640 true Busybox specific options: None
642 tty POSIX options: None
643 tty Busybox specific options:
647 option | exists | compliant | remarks
654 uname Busybox specific options:
657 uncompress POSIX options
658 option | exists | compliant | remarks
662 uncompress Busybox specific options: None
664 unexpand POSIX options
665 option | exists | compliant | remarks
666 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
667 -t tablist | yes | yes |
668 unexpand Busybox specific options:
669 --tabs=N, -f, --first-only, --all
672 option | exists | compliant | remarks
675 -f fields | yes | yes |
676 -s chars | yes | yes |
678 uniq Busybox specific options:
681 uudecode POSIX options
682 option | exists | compliant | remarks
683 -o outfile | no | no |
684 uudecode Busybox specific options: None
686 uuencode POSIX options
687 option | exists | compliant | remarks
689 uuencode Busybox specific options: None
692 option | exists | compliant | remarks
696 -t tagstring | no | no |
698 vi Busybox specific options:
702 option | exists | compliant | remarks
707 wc Busybox specific options:
711 option | exists | compliant | remarks
714 -a | yes | no | just shows all
725 who Busybox specific options: None
728 option | exists | compliant | remarks
729 -E eofstr | no | no |
730 -I replstr | no | no |
731 -L number | no | no |
732 -n number | yes | yes |
734 -s size | yes | yes |
737 xargs Busybox specific options:
740 zcat POSIX options: None
741 zcat Busybox specific options: None