POSIX conformance documentation for busybox
[platform/upstream/busybox.git] / docs / posix_conformance.txt
1
2 Busybox POSIX conformance table
3
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/utilities/utilities.html
8
9 This listing is a work in progress, and currently only covers 
10 tool options (not operands, enviroment 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 
14 required to do.
15
16 -----------------------------------------------
17
18 POSIX 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
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
28
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
32
33
34 POSIX Tools supported:
35
36 Note: echo, printf, kill, pwd documented here as stand-alone applets, 
37       not as ash built-ins.
38
39
40 ar POSIX options
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   |           |  
58 ar Busybox specific options: 
59   -o
60
61 awk POSIX options
62  option           | exists | compliant | remarks
63   -F ERE          |  yes   |           |  
64   -f progfile     |  yes   |           |  
65   -v assignment   |  yes   |           |  
66 awk Busybox specific options: None
67
68 basename POSIX options: None
69 basename Busybox specific options: None
70
71 cal POSIX options: None
72 cal Busybox specific options: 
73   -y, -j
74
75 cat POSIX options
76  option           | exists | compliant | remarks
77   -u              |  yes   | no        | option is ignored
78 cat Busybox specific options: None
79
80 chgrp POSIX options
81  option           | exists | compliant | remarks
82   -H              |  yes   |           |  
83   -L              |  yes   |           |  
84   -P              |  yes   |           |  
85   -R              |  yes   |           |  
86   -h              |  yes   |           |  
87 chgrp Busybox specific options: 
88   -f, -c, -v
89
90 chmod POSIX options
91  option           | exists | compliant | remarks
92   -R              |  yes   | yes       |  
93 chmod Busybox specific options: 
94   -f, -v, -c
95
96 chown POSIX options
97  option           | exists | compliant | remarks
98   -H              |  yes   |           |  
99   -L              |  yes   |           |  
100   -P              |  yes   |           |  
101   -R              |  yes   |           |  
102   -h              |  yes   |           |  
103 chown Busybox specific options: 
104   -f, -c, -v
105
106 cksum POSIX options: None
107 cksum Busybox specific options: None
108
109 cmp POSIX options
110  option           | exists | compliant | remarks
111   -l              |  yes   | yes       |  
112   -s              |  yes   | yes       |  
113 cmp Busybox specific options: 
114   
115
116 comm POSIX options
117  option           | exists | compliant | remarks
118   -1              |  yes   |           |  
119   -2              |  yes   |           |  
120   -3              |  yes   |           |  
121 comm Busybox specific options: None
122
123 cp POSIX options
124  option           | exists | compliant | remarks
125   -H              |  yes   |           |  
126   -L              |  yes   |           |  
127   -P              |  yes   |           |  
128   -R              |  yes   |           |  
129   -f              |  yes   |           |  
130   -i              |  yes   |           |  
131   -p              |  yes   |           |  
132 cp Busybox specific options: 
133   -d, -a, -s, -c, -r, -l
134
135 crontab POSIX options
136  option           | exists | compliant | remarks
137   -e              |  yes   |           |  
138   -l              |  yes   |           |  
139   -r              |  yes   |           |  
140 crontab Busybox specific options: 
141   -u, -c
142
143 cut POSIX options
144  option           | exists | compliant | remarks
145   -b list         |  yes   |           |  
146   -c list         |  yes   |           |  
147   -d delim        |  yes   |           |  
148   -f list         |  yes   |           |  
149   -n              |  yes   |           |  
150   -s              |  yes   |           |  
151 cut Busybox specific options: None
152
153 date POSIX options
154  option           | exists | compliant | remarks
155   -u              |  yes   | yes       |  
156 date Busybox specific options: 
157   -I[SPEC], -d TIME, -r FILE, -R, -D FMT
158
159 dd POSIX options: None
160 dd Busybox specific options: 
161   
162
163 df POSIX options
164  option           | exists | compliant | remarks
165   -P              |  yes   |           |  
166   -k              |  yes   |           |  
167   -t              |  no    | no        |  
168 df Busybox specific options: 
169   -a, -m, -B SIZE, -i, -h
170
171 diff POSIX options
172  option           | exists | compliant | remarks
173   -C n            |  no    | no        |  
174   -U n            |  yes   |           |  
175   -b              |  yes   |           |  
176   -c              |  no    | no        |  
177   -e              |  no    | no        |  
178   -f              |  no    | no        |  
179   -r              |  yes   |           |  
180   -u              |  no    | no        |  
181 diff Busybox specific options: 
182   -d, -a, -s, -t, -L, -N, -i, -T, -w, -q, -S
183
184 dirname POSIX options: None
185 dirname Busybox specific options: None
186
187 du POSIX options
188  option           | exists | compliant | remarks
189   -H              |  yes   |           |  
190   -L              |  yes   |           |  
191   -a              |  yes   |           |  
192   -k              |  yes   |           |  
193   -s              |  yes   |           |  
194   -x              |  yes   |           |  
195 du Busybox specific options: 
196   -c, -m, -h, -d N, -l
197
198 echo POSIX options: None
199 echo Busybox specific options: 
200   -e, -E, -n
201
202 ed POSIX options
203  option           | exists | compliant | remarks
204   -p string       |  no    | no        |  
205   -s              |  no    | no        |  
206 ed Busybox specific options: None
207
208 env POSIX options
209  option           | exists | compliant | remarks
210   -i              |  no    | no        |  
211 env Busybox specific options: 
212   -u, -,  -i
213
214 expand POSIX options
215  option           | exists | compliant | remarks
216   -t tablist      |  yes   |           |  
217 expand Busybox specific options: 
218   --tabs=N, -i, --initial
219
220 expr POSIX options: None
221 expr Busybox specific options: 
222   
223
224 false POSIX options: None
225 false Busybox specific options: None
226
227 find POSIX options
228  option           | exists | compliant | remarks
229   -H              |  no    | no        |  
230   -L              |  no    | no        |  
231 find Busybox specific options: 
232   -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]
233
234 fold POSIX options
235  option           | exists | compliant | remarks
236   -b              |  yes   |           |  
237   -s              |  yes   |           |  
238   -w width        |  yes   |           |  
239 fold Busybox specific options: None
240
241 fuser POSIX options
242  option           | exists | compliant | remarks
243   -c              |  no    | no        |  
244   -f              |  no    | no        |  
245   -u              |  no    | no        |  
246 fuser Busybox specific options: 
247   -m, -k, -4, -SIGNAL, -6, -s
248
249 grep POSIX options
250  option           | exists | compliant | remarks
251   -E              |  yes   |           |  
252   -F              |  yes   |           |  
253   -c              |  yes   |           |  
254   -e pattern_list |  yes   |           |  
255   -f pattern_file |  yes   |           |  
256   -i              |  yes   |           |  
257   -l              |  yes   |           |  
258   -n              |  yes   |           |  
259   -q              |  yes   |           |  
260   -s              |  yes   |           |  
261   -v              |  yes   |           |  
262   -x              |  no    | no        |  
263 grep Busybox specific options: 
264   -A, -C, -B, -L, -H, -o, -h, -w, -r, -z, -m MAX
265
266 head POSIX options
267  option           | exists | compliant | remarks
268   -n number       |  yes   | yes       |  
269 head Busybox specific options: 
270   -v, -c NUM, -q
271
272 id POSIX options
273  option           | exists | compliant | remarks
274   -G              |  yes   |           |  
275   -g              |  yes   |           |  
276   -n              |  yes   |           |  
277   -r              |  yes   |           |  
278   -u              |  yes   |           |  
279 id Busybox specific options: 
280   -Z
281
282 ipcrm POSIX options
283  option           | exists | compliant | remarks
284   -M shmkey       |  no    | no        |  
285   -Q msgkey       |  no    | no        |  
286   -S semkey       |  no    | no        |  
287   -m shmid        |  no    | no        |  
288   -q msgid        |  no    | no        |  
289   -s semid        |  no    | no        |  
290 ipcrm Busybox specific options: 
291   -mM, -qQ, -sS
292
293 ipcs POSIX options
294  option           | exists | compliant | remarks
295   -a              |  yes   |           |  
296   -b              |  no    | no        |  
297   -c              |  yes   |           |  
298   -m              |  yes   |           |  
299   -o              |  no    | no        |  
300   -p              |  yes   |           |  
301   -q              |  yes   |           |  
302   -s              |  yes   |           |  
303   -t              |  yes   |           |  
304 ipcs Busybox specific options: 
305   -l, -i, -u
306
307 kill POSIX options
308  option           | exists | compliant | remarks
309   -l              |  yes   | yes       |  
310   -s signal_name  |  yes   | yes       |  
311   -signal_name    |  yes   | yes       |  
312   -signal_number  |  yes   | yes       |  
313 kill Busybox specific options: 
314    -q, -o
315
316 ln POSIX options
317  option           | exists | compliant | remarks
318   -L              |  no    | no        |  
319   -P              |  no    | no        |  
320   -f              |  yes   |           |  
321   -s              |  yes   |           |  
322 ln Busybox specific options: 
323   -S suf, -n, -b
324
325 logger POSIX options: None
326 logger Busybox specific options: 
327   -p PRIO, -t TAG, -s
328
329 logname POSIX options: None
330 logname Busybox specific options: None
331
332 ls POSIX options
333  option           | exists | compliant | remarks
334   -1              |  yes   |           |  
335   -A              |  yes   |           |  
336   -C              |  yes   |           |  
337   -F              |  yes   |           |  
338   -H              |  no    | no        |  
339   -L              |  yes   |           |  
340   -R              |  yes   |           |  
341   -S              |  yes   |           |  
342   -a              |  yes   |           |  
343   -c              |  yes   |           |  
344   -d              |  yes   |           |  
345   -f              |  no    | no        |  
346   -g              |  no    | no        |  
347   -i              |  yes   |           |  
348   -k              |  yes   |           |  
349   -l              |  yes   |           |  
350   -m              |  no    | no        |  
351   -n              |  yes   |           |  
352   -o              |  no    | no        |  
353   -p              |  yes   |           |  
354   -q              |  no    | no        |  
355   -r              |  yes   |           |  
356   -s              |  yes   |           |  
357   -t              |  yes   |           |  
358   -u              |  yes   |           |  
359   -x              |  yes   |           |  
360 ls Busybox specific options: 
361   --color, -T NUM, -K, -X, -Z, -e, -h, -v, -w NUM
362
363 man POSIX options
364  option           | exists | compliant | remarks
365   -k              |  no    | no        |  
366 man Busybox specific options: 
367   -a      Display all pages
368
369
370 mesg POSIX options: None
371 mesg Busybox specific options: None
372
373 mkdir POSIX options
374  option           | exists | compliant | remarks
375   -m mode         |  yes   |           |  
376   -p              |  yes   |           |  
377 mkdir Busybox specific options: 
378   -Z
379
380 mkfifo POSIX options
381  option           | exists | compliant | remarks
382   -m mode         |  yes   | yes       |  
383 mkfifo Busybox specific options: 
384   -Z
385
386 more POSIX options
387  option           | exists | compliant | remarks
388   -c              |  no    | no        |  
389   -e              |  no    | no        |  
390   -i              |  no    | no        |  
391   -n number       |  no    | no        |  
392   -p command      |  no    | no        |  
393   -s              |  no    | no        |  
394   -t tagstring    |  no    | no        |  
395   -u              |  no    | no        |  
396 more Busybox specific options: None
397
398 mv POSIX options
399  option           | exists | compliant | remarks
400   -f              |  yes   |           |  
401   -i              |  yes   |           |  
402 mv Busybox specific options: None
403
404 nice POSIX options
405  option           | exists | compliant | remarks
406   -n increment    |  yes   |           |  
407 nice Busybox specific options: None
408
409 nohup POSIX options: None
410 nohup Busybox specific options: None
411
412 od POSIX options
413  option           | exists | compliant | remarks
414   -A address_base |  no    | no        |  
415   -N count        |  no    | no        |  
416   -b              |  no    | no        |  
417   -c              |  no    | no        |  
418   -d              |  no    | no        |  
419   -j skip         |  no    | no        |  
420   -o              |  no    | no        |  
421   -s              |  no    | no        |  
422   -t type_string  |  no    | no        |  
423   -v              |  no    | no        |  
424   -x              |  no    | no        |  
425 od Busybox specific options: None
426
427 patch POSIX options
428  option           | exists | compliant | remarks
429   -D define       |  no    | no        |  
430   -N              |  no    | no        |  
431   -R              |  yes   |           |  
432   -b              |  no    | no        |  
433   -c              |  no    | no        |  
434   -d dir          |  no    | no        |  
435   -e              |  no    | no        |  
436   -i patchfile    |  yes   |           |  
437   -l              |  no    | no        |  
438   -n              |  no    | no        |  
439   -o outfile      |  no    | no        |  
440   -p num          |  yes   |           |  
441   -r rejectfile   |  no    | no        |  
442   -u              |  no    | no        |  
443 patch Busybox specific options: None
444
445 printf POSIX options: None
446 printf Busybox specific options: None
447
448 ps POSIX options
449  option           | exists | compliant | remarks
450   -A              |  no    | no        |  
451   -G grouplist    |  no    | no        |  
452   -U userlist     |  no    | no        |  
453   -a              |  no    | no        |  
454   -d              |  no    | no        |  
455   -e              |  no    | no        |  
456   -f              |  no    | no        |  
457   -g grouplist    |  no    | no        |  
458   -l              |  no    | no        |  
459   -n namelist     |  no    | no        |  
460   -o format       |  yes   | no        | not supported: ruser, group, rgroup, pcpu
461   -p proclist     |  no    | no        | 
462   -t termlist     |  no    | no        |  
463   -u userlist     |  no    | no        |  
464 ps Busybox specific options: None
465
466 pwd POSIX options
467  option           | exists | compliant | remarks
468   -L              |  no    | no        |  
469   -P              |  no    | no        |  
470 pwd Busybox specific options: None
471
472 renice POSIX options
473  option           | exists | compliant | remarks
474   -g              |  yes   |           |  
475   -n increment    |  yes   |           |  
476   -p              |  yes   |           |  
477   -u              |  yes   |           |  
478 renice Busybox specific options: None
479
480 rm POSIX options
481  option           | exists | compliant | remarks
482   -R              |  yes   |           |  
483   -f              |  yes   |           |  
484   -i              |  yes   |           |  
485   -r              |  yes   |           |  
486 rm Busybox specific options: None
487
488 rmdir POSIX options
489  option           | exists | compliant | remarks
490   -p              |  yes   |           |  
491 rmdir Busybox specific options: 
492   --parents
493
494 sed POSIX options
495  option           | exists | compliant | remarks
496   -e script       |  yes   |           |  
497   -f script_file  |  yes   |           |  
498   -n              |  yes   |           |  
499 sed Busybox specific options: 
500   -i, -r
501
502 sh POSIX options
503  option           | exists | compliant | remarks
504   -c              |  no    | no        |  
505   -i              |  no    | no        |  
506   -s              |  no    | no        |  
507 sh Busybox specific options: None
508
509 sleep POSIX options: None
510 sleep Busybox specific options: None
511
512 sort POSIX options
513  option           | exists | compliant | remarks
514   -C              |  no    | no        |  
515   -b              |  yes   |           |  
516   -c              |  yes   |           |  
517   -d              |  yes   |           |  
518   -f              |  yes   |           |  
519   -i              |  yes   |           |  
520   -k keydef       |  yes   |           |  
521   -m              |  no    | no        |  
522   -n              |  yes   |           |  
523   -o output       |  yes   |           |  
524   -r              |  yes   |           |  
525   -t char         |  yes   |           |  
526   -u              |  yes   |           |  
527 sort Busybox specific options: 
528   -mST, -g, -M, -s, -z
529
530 split POSIX options
531  option           | exists | compliant | remarks
532   -a suffix_length |  yes   |           |  
533   -b n            |  yes   |           |  
534   -b nk           |  yes   |           |  
535   -b nm           |  yes   |           |  
536   -l line_count   |  yes   |           |  
537 split Busybox specific options: None
538
539 strings POSIX options
540  option           | exists | compliant | remarks
541   -a              |  yes   |           |  
542   -n number       |  yes   |           |  
543   -t format       |  no    | no        |  
544 strings Busybox specific options: 
545   -o, -f
546
547 stty POSIX options
548  option           | exists | compliant | remarks
549   -a              |  yes   |           |  
550   -g              |  yes   |           |  
551 stty Busybox specific options: 
552   -F DEVICE
553
554 tail POSIX options
555  option           | exists | compliant | remarks
556   -c number       |  yes   | yes       |  
557   -f              |  yes   | yes       |  
558   -n number       |  yes   | yes       |  
559 tail Busybox specific options: 
560   -v, -q, -s SEC
561
562 tee POSIX options
563  option           | exists | compliant | remarks
564   -a              |  yes   |           |  
565   -i              |  yes   |           |  
566 tee Busybox specific options: None
567
568 test POSIX options: None
569 test Busybox specific options: None
570
571 time POSIX options
572  option           | exists | compliant | remarks
573   -p              |  no    | no        |  
574 time Busybox specific options: 
575   -v
576
577 touch POSIX options
578  option           | exists | compliant | remarks
579   -a              |  no    | no        |  
580   -c              |  yes   |           |  
581   -d date_time    |  no    | no        |  
582   -m              |  no    | no        |  
583   -r ref_file     |  no    | no        |  
584   -t time         |  no    | no        |  
585 touch Busybox specific options: None
586
587 tr POSIX options
588  option           | exists | compliant | remarks
589   -C              |  no    | no        |  
590   -c              |  yes   |           |  
591   -d              |  yes   |           |  
592   -s              |  yes   |           |  
593 tr Busybox specific options: None
594
595 true POSIX options: None
596 true Busybox specific options: None
597
598 tty POSIX options: None
599 tty Busybox specific options: 
600   -s
601
602 uname POSIX options
603  option           | exists | compliant | remarks
604   -a              |  yes   |           |  
605   -m              |  yes   |           |  
606   -n              |  yes   |           |  
607   -r              |  yes   |           |  
608   -s              |  yes   |           |  
609   -v              |  yes   |           |  
610 uname Busybox specific options: 
611   -p
612
613 uncompress POSIX options
614  option           | exists | compliant | remarks
615   -c              |  yes   |           |  
616   -f              |  yes   |           |  
617   -v              |  no    | no        |  
618 uncompress Busybox specific options: None
619
620 unexpand POSIX options
621  option           | exists | compliant | remarks
622   -a              |  yes   |           |  
623   -t tablist      |  yes   |           |  
624 unexpand Busybox specific options: 
625   --tabs=N, -f, --first-only, --all
626
627 uniq POSIX options
628  option           | exists | compliant | remarks
629   -c              |  yes   |           |  
630   -d              |  yes   |           |  
631   -f fields       |  yes   |           |  
632   -s chars        |  yes   |           |  
633   -u              |  yes   |           |  
634 uniq Busybox specific options: 
635   -w N
636
637 uudecode POSIX options
638  option           | exists | compliant | remarks
639   -o outfile      |  no    | no        |  
640 uudecode Busybox specific options: None
641
642 uuencode POSIX options
643  option           | exists | compliant | remarks
644   -m              |  yes   |           |  
645 uuencode Busybox specific options: None
646
647 vi POSIX options
648  option           | exists | compliant | remarks
649   -R              |  yes   |           |  
650   -c command      |  yes   |           |  
651   -r              |  no    | no        |  
652   -t tagstring    |  no    | no        |  
653   -w size         |  no    | no        |  
654 vi Busybox specific options: 
655   -H
656
657 wc POSIX options
658  option           | exists | compliant | remarks
659   -c              |  yes   |           |  
660   -l              |  yes   |           |  
661   -m              |  no    | no        |  
662   -w              |  yes   |           |  
663 wc Busybox specific options: 
664   -L
665
666 who POSIX options
667  option           | exists | compliant | remarks
668   -H              |  no    | no        |  
669   -T              |  no    | no        |  
670   -a              |  yes   |           |  
671   -b              |  no    | no        |  
672   -d              |  no    | no        |  
673   -l              |  no    | no        |  
674   -m              |  no    | no        |  
675   -p              |  no    | no        |  
676   -q              |  no    | no        |  
677   -r              |  no    | no        |  
678   -s              |  no    | no        |  
679   -t              |  no    | no        |  
680   -u              |  no    | no        |  
681 who Busybox specific options: None
682
683 xargs POSIX options
684  option           | exists | compliant | remarks
685   -E eofstr       |  no    | no        |  
686   -I replstr      |  no    | no        |  
687   -L number       |  no    | no        |  
688   -n number       |  yes   |           |  
689   -p              |  yes   |           |  
690   -s size         |  yes   |           |  
691   -t              |  yes   |           |  
692   -x              |  yes   |           |  
693 xargs Busybox specific options: 
694   -e[STR], -0, -r
695
696 zcat POSIX options: None
697 zcat Busybox specific options: None
698