source: MondoRescue/branches/3.3/mindi-busybox/docs/posix_conformance.txt@ 3621

Last change on this file since 3621 was 3621, checked in by Bruno Cornec, 7 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

  • Property svn:eol-style set to native
File size: 25.0 KB
Line 
1
2Busybox POSIX conformance table
3
4See POSIX documentation (1003.1-2008) here:
5http://www.opengroup.org/onlinepubs/9699919799/
6And the complete list of all utilities that POSIX covers:
7http://www.opengroup.org/onlinepubs/9699919799/idx/utilities.html
8
9This listing is a work in progress, and currently only covers
10tool options (not operands, environment variables, return codes, etc..).
11For each option it is set if it (a) exists and (b) compliant to POSIX 2008.
12Some options exist but there is no value in the 'compliant' column: that
13means no one has yet bothered to make sure that the option does what it is
14required to do.
15
16-----------------------------------------------
17
18POSIX Tools supported only as shell built-ins (ash shell):
19 alias, bg, cd, fg, getopts, hash, jobs, read, type, umask, ulimit,
20 unalias, wait, write
21
22POSIX 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
28
29POSIX 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
32
33
34POSIX Tools supported:
35
36Note: echo, printf, kill, pwd documented here as stand-alone applets,
37 not as ash built-ins.
38
39
40ar POSIX options ********************* Failed to recognize zip & tar (did not compare to regular ar)
41 option | exists | compliant | remarks
42 -C | no | no |
43 -T | no | no |
44 -a | no | no |
45 -b | no | no |
46 -c | no | no |
47 -d | no | no |
48 -i | no | no |
49 -m | no | no |
50 -p | yes | |
51 -q | no | no |
52 -r | no | no |
53 -s | no | no |
54 -t | yes | |
55 -u | no | no |
56 -v | yes | |
57 -x | yes | |
58ar Busybox specific options:
59 -o
60
61awk POSIX options
62 option | exists | compliant | remarks
63 -F ERE | yes | |
64 -f progfile | yes | |
65 -v assignment | yes | |
66awk Busybox specific options: None
67
68basename POSIX options: None
69basename Busybox specific options: None
70
71cal POSIX options: None
72cal Busybox specific options:
73 -y, -j
74
75cat POSIX options
76 option | exists | compliant | remarks
77 -u | yes | no | option is ignored
78cat Busybox specific options: None
79
80chgrp POSIX options
81 option | exists | compliant | remarks
82 -H | yes | |
83 -L | yes | |
84 -P | yes | |
85 -R | yes | |
86 -h | yes | |
87chgrp Busybox specific options:
88 -f, -c, -v
89
90chmod POSIX options
91 option | exists | compliant | remarks
92 -R | yes | yes |
93chmod Busybox specific options:
94 -f, -v, -c
95
96chown 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
100 -P | yes | |
101 -R | yes | |
102 -h | yes | |
103chown Busybox specific options:
104 -f, -c, -v
105
106cksum POSIX options: None
107cksum Busybox specific options: None
108
109cmp POSIX options
110 option | exists | compliant | remarks
111 -l | yes | yes |
112 -s | yes | yes |
113cmp Busybox specific options:
114
115
116comm POSIX options
117 option | exists | compliant | remarks
118 -1 | yes | yes |
119 -2 | yes | yes |
120 -3 | yes | yes |
121comm Busybox specific options: None
122
123cp POSIX options
124 option | exists | compliant | remarks
125 -H | yes | yes |
126 -L | yes | yes |
127 -P | yes | yes |
128 -R | yes | yes |
129 -f | yes | yes |
130 -i | yes | yes |
131 -p | yes | yes |
132cp Busybox specific options:
133 -d, -a, -s, -c, -r, -l
134
135crontab POSIX options
136 option | exists | compliant | remarks
137 -e | yes | |
138 -l | yes | |
139 -r | yes | |
140crontab Busybox specific options:
141 -u, -c
142
143cut POSIX 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 |
149 -n | yes | yes |
150 -s | yes | yes |
151cut Busybox specific options: None
152
153date POSIX options
154 option | exists | compliant | remarks
155 -u | yes | yes |
156date Busybox specific options:
157 -I[SPEC], -d TIME, -r FILE, -R, -D FMT
158
159dd POSIX options:
160 option | exists | compliant | remarks
161 if | yes | |
162 of | yes | |
163 ibs | yes | |
164 obs | yes | |
165 bs | yes | |
166 cbs | no | no |
167 skip | yes | |
168 seek | yes | |
169 count | yes | |
170 conv=ascii | no | no |
171 conv=ebcdic | no | no |
172 conv=ibm | 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 | |
180 conv=sync | yes | |
181 iflag=skip_bytes| yes | |
182dd Busybox specific options:
183 conv=fsync
184
185df POSIX options
186 option | exists | compliant | remarks
187 -P | yes | yes |
188 -k | yes | yes |
189 -t | no | no |
190df Busybox specific options:
191 -a, -m, -B SIZE, -i, -h
192Remark:
193- It seems that GNU df does not round percents up in its output (thus its results are a bit different)
194
195diff POSIX options
196 option | exists | compliant | remarks
197 -C n | no | no |
198 -U n | yes | |
199 -b | yes | |
200 -c | no | no |
201 -e | no | no |
202 -f | no | no |
203 -r | yes | |
204 -u | no | no |
205diff Busybox specific options:
206 -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
207
208dirname POSIX options: None
209dirname Busybox specific options: None
210
211du POSIX options
212 option | exists | compliant | remarks
213 -H | yes | |
214 -L | yes | |
215 -a | yes | |
216 -k | yes | |
217 -s | yes | |
218 -x | yes | |
219du Busybox specific options:
220 -c, -m, -h, -d N, -l
221
222
223echo POSIX options: None
224 option | exists | compliant | remarks
225 -n | yes | yes | The result of -n is "implementation-defined"
226echo Busybox specific options:
227 -e, -E
228
229ed POSIX options
230 option | exists | compliant | remarks
231 -p string | no | no |
232 -s | no | no |
233ed Busybox specific options: None
234
235env POSIX options
236 option | exists | compliant | remarks
237 -i | no | no |
238env Busybox specific options:
239 -u, -, -i
240
241expand POSIX options
242 option | exists | compliant | remarks
243 -t tablist | yes | yes |
244expand Busybox specific options:
245 --tabs=N, -i, --initial
246
247expr POSIX operations:
248 option | exists | compliant | remarks
249 | | yes | yes |
250 & | yes | yes |
251 = | yes | yes |
252 > | yes | yes |
253 >= | yes | yes |
254 <= | yes | yes |
255 < | yes | yes |
256 != | yes | yes |
257 + | yes | yes |
258 - | yes | yes |
259 * | yes | yes |
260 / | yes | yes |
261 % | yes | yes |
262 : | yes | yes |
263 (expr) | yes | yes |
264 integer | yes | yes |
265 string | yes | yes |
266expr Busybox specific operations:
267 match, substr, index, length, quote
268
269false POSIX options: None
270false Busybox specific options: None
271
272find POSIX options
273 option | exists | compliant | remarks
274 -H | no | no |
275 -L | no | no |
276find 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]
278
279fold POSIX options
280 option | exists | compliant | remarks
281 -b | yes | yes |
282 -s | yes | yes |
283 -w width | yes | yes |
284fold Busybox specific options: None
285
286fuser POSIX options
287 option | exists | compliant | remarks
288 -c | no | no |
289 -f | no | no |
290 -u | no | no |
291fuser Busybox specific options:
292 -m, -k, -4, -SIGNAL, -6, -s
293
294grep POSIX options
295 option | exists | compliant | remarks
296 -E | yes | |
297 -F | yes | |
298 -c | yes | |
299 -e pattern_list | yes | |
300 -f pattern_file | yes | |
301 -i | yes | |
302 -l | yes | |
303 -n | yes | |
304 -q | yes | |
305 -s | yes | |
306 -v | yes | |
307 -x | no | no |
308grep Busybox specific options:
309 -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
310
311head POSIX options
312 option | exists | compliant | remarks
313 -n number | yes | yes |
314head Busybox specific options:
315 -v, -c NUM, -q
316
317id POSIX options
318 option | exists | compliant | remarks
319 -G | yes | yes |
320 -g | yes | yes |
321 -n | yes | yes |
322 -r | yes | yes |
323 -u | yes | yes |
324id Busybox specific options:
325 -Z
326
327ipcrm POSIX options
328 option | exists | compliant | remarks
329 -M shmkey | no | no |
330 -Q msgkey | no | no |
331 -S semkey | no | no |
332 -m shmid | no | no |
333 -q msgid | no | no |
334 -s semid | no | no |
335ipcrm Busybox specific options:
336 -mM, -qQ, -sS
337
338ipcs POSIX options
339 option | exists | compliant | remarks
340 -a | yes | |
341 -b | no | no |
342 -c | yes | |
343 -m | yes | |
344 -o | no | no |
345 -p | yes | |
346 -q | yes | |
347 -s | yes | |
348 -t | yes | |
349ipcs Busybox specific options:
350 -l, -i, -u
351
352kill POSIX options
353 option | exists | compliant | remarks
354 -l | yes | yes |
355 -s signal_name | yes | yes |
356 -signal_name | yes | yes |
357 -signal_number | yes | yes |
358kill Busybox specific options:
359 -q, -o
360
361ln POSIX options
362 option | exists | compliant | remarks
363 -L | no | no |
364 -P | no | no |
365 -f | yes | yes |
366 -s | yes | yes |
367ln Busybox specific options:
368 -S suf, -n, -b
369
370logger POSIX options: None
371logger Busybox specific options:
372 -p PRIO, -t TAG, -s
373
374logname POSIX options: None
375logname Busybox specific options: None
376
377ls POSIX options
378 option | exists | compliant | remarks
379 -1 | yes | yes |
380 -A | yes | yes |
381 -C | yes | yes |
382 -F | yes | yes | And more: '=' for sockets (not defined by POSIX)
383 -H | no | no |
384 -L | yes | yes | But coloring may be wrong (at least POSIX does not require correct colors :) )
385 -R | yes | yes |
386 -S | yes | yes |
387 -a | yes | yes |
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
390 -f | no | no |
391 -g | no | no |
392 -i | yes | yes |
393 -k | yes | no | Does something completely unrelated! (Lists security context instead of specifying block size)
394 -l | yes | yes |
395 -m | no | no |
396 -n | yes | no | Works correctly only together with '-l' (but POSIX requires '-l' to be implicitly assumed)
397 -o | no | no |
398 -p | yes | yes |
399 -q | no | no |
400 -r | yes | yes |
401 -s | yes | yes |
402 -t | yes | yes |
403 -u | yes | yes |
404 -x | yes | yes |
405ls Busybox specific options:
406 --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
407
408man POSIX options
409 option | exists | compliant | remarks
410 -k | no | no |
411man Busybox specific options:
412 -a Display all pages
413
414
415mesg POSIX options: None
416mesg Busybox specific options: None
417
418mkdir POSIX options
419 option | exists | compliant | remarks
420 -m mode | yes | yes |
421 -p | yes | yes |
422mkdir Busybox specific options:
423 -Z
424
425mkfifo POSIX options
426 option | exists | compliant | remarks
427 -m mode | yes | yes |
428mkfifo Busybox specific options:
429 -Z
430
431more POSIX options
432 option | exists | compliant | remarks
433 -c | no | no |
434 -e | no | no |
435 -i | no | no |
436 -n number | no | no |
437 -p command | no | no |
438 -s | no | no |
439 -t tagstring | no | no |
440 -u | no | no |
441more Busybox specific options: None
442
443mv POSIX options
444 option | exists | compliant | remarks
445 -f | yes | yes |
446 -i | yes | yes |
447mv Busybox specific options: None
448
449nice POSIX options
450 option | exists | compliant | remarks
451 -n increment | yes | yes |
452nice Busybox specific options: None
453
454nohup POSIX options: None
455nohup Busybox specific options: None
456
457od POSIX options
458 option | exists | compliant | remarks
459 -A address_base | no | no |
460 -N count | no | no |
461 -b | no | no |
462 -c | no | no |
463 -d | no | no |
464 -j skip | no | no |
465 -o | no | no |
466 -s | no | no |
467 -t type_string | no | no |
468 -v | no | no |
469 -x | no | no |
470od Busybox specific options: None
471
472patch POSIX options
473 option | exists | compliant | remarks
474 -D define | no | no |
475 -N | no | no |
476 -R | yes | yes |
477 -b | no | no |
478 -c | no | no |
479 -d dir | no | no |
480 -e | no | no |
481 -i patchfile | yes | yes |
482 -l | no | no |
483 -n | no | no |
484 -o outfile | no | no |
485 -p num | yes | yes |
486 -r rejectfile | no | no |
487 -u | no | no |
488patch Busybox specific options: None
489
490printf POSIX options: None
491printf Busybox specific options: None
492
493ps POSIX options
494 option | exists | compliant | remarks
495 -A | no | no |
496 -G grouplist | no | no |
497 -U userlist | no | no |
498 -a | no | no |
499 -d | no | no |
500 -e | no | no |
501 -f | no | no |
502 -g grouplist | no | no |
503 -l | no | no |
504 -n namelist | no | no |
505 -o format | yes | no | not supported: ruser, group, rgroup, pcpu
506 -p proclist | no | no |
507 -t termlist | no | no |
508 -u userlist | no | no |
509ps Busybox specific options: None
510
511pwd POSIX options
512 option | exists | compliant | remarks
513 -L | no | no |
514 -P | no | no |
515pwd Busybox specific options: None
516
517renice POSIX options
518 option | exists | compliant | remarks
519 -g | yes | yes |
520 -n increment | yes | yes | Note POSIX allows only to run with this option (busybox also allows to run without '-n' and set niceness directly)
521 -p | yes | yes |
522 -u | yes | yes |
523renice Busybox specific options: None
524
525rm POSIX options
526 option | exists | compliant | remarks
527 -R | yes | yes |
528 -f | yes | yes |
529 -i | yes | yes |
530 -r | yes | yes |
531rm Busybox specific options: None
532
533rmdir POSIX options
534 option | exists | compliant | remarks
535 -p | yes | yes |
536rmdir Busybox specific options:
537 --parents
538
539sed POSIX options
540 option | exists | compliant | remarks
541 -e script | yes | |
542 -f script_file | yes | |
543 -n | yes | |
544sed Busybox specific options:
545 -i, -r
546
547sh POSIX options
548 option | exists | compliant | remarks
549 -c | no | no |
550 -i | no | no |
551 -s | no | no |
552sh Busybox specific options: None
553
554sleep POSIX options: None
555sleep Busybox specific options: None
556
557sort POSIX options
558 option | exists | compliant | remarks
559 -C | no | no |
560 -b | yes | yes |
561 -c | yes | yes |
562 -d | yes | yes |
563 -f | yes | yes |
564 -i | yes | yes | But is not like GNU sort, which isn't! (try to sort 'a\nA\nB\nb' with and without -f)
565 -k keydef | yes | |
566 -m | no | no |
567 -n | yes | yes |
568 -o output | yes | yes |
569 -r | yes | yes |
570 -t char | yes | |
571 -u | yes | yes |
572sort Busybox specific options:
573 -mST, -g, -M, -s, -z
574
575split POSIX options
576 option | exists | compliant | remarks
577 -a suffix_length | yes | yes |
578 -b n | yes | yes |
579 -b nk | yes | yes |
580 -b nm | yes | yes |
581 -l line_count | yes | yes |
582split Busybox specific options: None
583
584strings POSIX options
585 option | exists | compliant | remarks
586 -a | yes | yes |
587 -n number | yes | yes |
588 -t format | no | no |
589strings Busybox specific options:
590 -o, -f
591
592stty POSIX options
593 option | exists | compliant | remarks
594 -a | yes | yes |
595 -g | yes | yes |
596stty Busybox specific options:
597 -F DEVICE
598
599tail POSIX options
600 option | exists | compliant | remarks
601 -c number | yes | yes |
602 -f | yes | yes |
603 -n number | yes | yes |
604tail Busybox specific options:
605 -v, -q, -s SEC
606
607tee POSIX options
608 option | exists | compliant | remarks
609 -a | yes | yes |
610 -i | yes | yes |
611tee Busybox specific options: None
612
613test POSIX options: None
614test Busybox specific options: None
615
616time POSIX options
617 option | exists | compliant | remarks
618 -p | no | no |
619time Busybox specific options:
620 -v
621
622touch POSIX options
623 option | exists | compliant | remarks
624 -a | no | no |
625 -c | yes | yes |
626 -d date_time | no | no |
627 -m | no | no |
628 -r ref_file | no | no |
629 -t time | no | no |
630touch Busybox specific options: None
631
632tr POSIX options
633 option | exists | compliant | remarks
634 -C | no | no |
635 -c | yes | yes |
636 -d | yes | yes |
637 -s | yes | yes |
638tr Busybox specific options: None
639
640true POSIX options: None
641true Busybox specific options: None
642
643tty POSIX options: None
644tty Busybox specific options:
645 -s
646
647uname POSIX options
648 option | exists | compliant | remarks
649 -a | yes | yes |
650 -m | yes | yes |
651 -n | yes | yes |
652 -r | yes | yes |
653 -s | yes | yes |
654 -v | yes | yes |
655uname Busybox specific options:
656 -p
657
658uncompress POSIX options
659 option | exists | compliant | remarks
660 -c | yes | yes |
661 -f | yes | yes |
662 -v | no | no |
663uncompress Busybox specific options: None
664
665unexpand POSIX options
666 option | exists | compliant | remarks
667 -a | yes | no | POSIX requires converting two or more spaces to tabs, busybox converts one or more spaces
668 -t tablist | yes | yes |
669unexpand Busybox specific options:
670 --tabs=N, -f, --first-only, --all
671
672uniq POSIX options
673 option | exists | compliant | remarks
674 -c | yes | yes |
675 -d | yes | yes |
676 -f fields | yes | yes |
677 -s chars | yes | yes |
678 -u | yes | yes |
679uniq Busybox specific options:
680 -w N
681
682uudecode POSIX options
683 option | exists | compliant | remarks
684 -o outfile | no | no |
685uudecode Busybox specific options: None
686
687uuencode POSIX options
688 option | exists | compliant | remarks
689 -m | yes | yes |
690uuencode Busybox specific options: None
691
692vi POSIX options
693 option | exists | compliant | remarks
694 -R | yes | |
695 -c command | yes | |
696 -r | no | no |
697 -t tagstring | no | no |
698 -w size | no | no |
699vi Busybox specific options:
700 -H
701
702wc POSIX options
703 option | exists | compliant | remarks
704 -c | yes | yes |
705 -l | yes | yes |
706 -m | no | no |
707 -w | yes | yes |
708wc Busybox specific options:
709 -L
710
711who POSIX options
712 option | exists | compliant | remarks
713 -H | no | no |
714 -T | no | no |
715 -a | yes | no | just shows all
716 -b | no | no |
717 -d | no | no |
718 -l | no | no |
719 -m | no | no |
720 -p | no | no |
721 -q | no | no |
722 -r | no | no |
723 -s | no | no |
724 -t | no | no |
725 -u | no | no |
726who Busybox specific options: None
727
728xargs POSIX options
729 option | exists | compliant | remarks
730 -E eofstr | no | no |
731 -I replstr | no | no |
732 -L number | no | no |
733 -n number | yes | yes |
734 -p | yes | yes |
735 -s size | yes | yes |
736 -t | yes | yes |
737 -x | yes | yes |
738xargs Busybox specific options:
739 -e[STR], -0, -r
740
741zcat POSIX options: None
742zcat Busybox specific options: None
Note: See TracBrowser for help on using the repository browser.