Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/cmd/pax/options.c
1808 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1987-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* *
19
***********************************************************************/
20
#pragma prototyped
21
22
/*
23
* pax option table
24
*/
25
26
#include "pax.h"
27
28
Option_t options[] =
29
{
30
{
31
0,
32
},
33
{
34
"action",
35
'A',
36
OPT_action,
37
"Input/output file path match and filter command. \acommand\a\
38
is applied to each file that matches \apattern\a as it is read\
39
from or written to the archive. \bX\b is any delimiter not occurring\
40
in \apattern\a. \acommand\a is split into space separated arguments,\
41
and is executed with the pathname of the file to be processed as the\
42
last argument. The standard output of the resulting command is read\
43
by \bpax\b.",
44
"\bX\bpattern\bX\bcommand",
45
},
46
{
47
"append",
48
'a',
49
OPT_append,
50
"Append to end of archive.",
51
},
52
{
53
"atime",
54
0,
55
OPT_atime,
56
"Preserve or set file access times.",
57
"time",
58
0,
59
OPT_HEADER|OPT_OPTIONAL,
60
4
61
},
62
{
63
"base",
64
'z',
65
OPT_base,
66
"Two archives are required for delta operations. \b--file\b names\
67
the delta archive and \b--base\b names the delta base archive.\
68
If \aarchive\a is \b-\b then the base is ignored (the actual delta\
69
sizes are reported and restored) on input and the delta is\
70
compressed on output.",
71
"archive",
72
},
73
{
74
"blocksize",
75
'b',
76
OPT_blocksize,
77
"Input/output block size. The default is format specific.",
78
"size",
79
0,
80
OPT_NUMBER,
81
},
82
{
83
"blok",
84
0,
85
OPT_blok,
86
"Input/output BLOK format for tapes on file.",
87
"i|o",
88
0,
89
OPT_OPTIONAL,
90
},
91
{
92
"charset",
93
0,
94
OPT_charset,
95
"Data character set name. The character set names are:",
96
"charset",
97
"\fcharsets\f",
98
0,
99
OPT_HEADER,
100
},
101
{
102
"checksum",
103
0,
104
OPT_checksum,
105
"Generate a \amethod\a checksum file for each archive member and add\
106
the resulting file as the archive member \apath\a. See \bsum\b(1) for\
107
supported checksum methods; \bmd5\b is a good candidate. The generated\
108
file is suitable for input to \bsum --check --permissions\b.",
109
"method::path",
110
},
111
{
112
"chksum",
113
0,
114
OPT_chksum,
115
"The header checksum string; empty if not supported.",
116
0,
117
0,
118
OPT_READONLY,
119
},
120
{
121
"chmod",
122
'C',
123
OPT_chmod,
124
"Apply the \bchmod\b(1) \amode\a expression to file modes\
125
written to archive headers.",
126
"mode"
127
},
128
{
129
"clobber",
130
'k',
131
OPT_clobber,
132
"Overwrite output files.",
133
0,
134
0,
135
OPT_INVERT,
136
},
137
{
138
"comment",
139
0,
140
OPT_comment,
141
"Comment text.",
142
"text",
143
0,
144
OPT_HEADER,
145
},
146
{
147
"complete",
148
0,
149
OPT_complete,
150
"Complete archive must fit in one media part.",
151
},
152
{
153
"crossdevice",
154
'X',
155
OPT_crossdevice,
156
"Directory traversal may cross device boundaries.",
157
0,
158
0,
159
OPT_INVERT,
160
},
161
{
162
"ctime",
163
0,
164
OPT_ctime,
165
"Preserve or set file change times.",
166
"time",
167
0,
168
OPT_HEADER|OPT_OPTIONAL,
169
},
170
{
171
"debug",
172
'D',
173
OPT_debug,
174
"Set debug trace level. Higher levels produce more output.",
175
"level",
176
0,
177
OPT_NUMBER,
178
},
179
{
180
"delete",
181
0,
182
OPT_delete,
183
"\bdelete\b=\apattern\a ignores all global and extended header keywords\
184
matching the \bksh\b(1) \apattern\a.",
185
"pattern",
186
},
187
{
188
"delta.base.checksum",
189
0,
190
OPT_delta_base_checksum,
191
"The delta base archive checksum.",
192
"checksum",
193
0,
194
OPT_GLOBAL|OPT_READONLY|OPT_NUMBER|OPT_VENDOR,
195
},
196
{
197
"delta.base.size",
198
0,
199
OPT_delta_base_size,
200
"The delta base archive size.",
201
"size",
202
0,
203
OPT_GLOBAL|OPT_READONLY|OPT_NUMBER|OPT_VENDOR,
204
},
205
{
206
"delta.checksum",
207
0,
208
OPT_delta_checksum,
209
"The delta archive checksum not including the current entry.",
210
"checksum",
211
0,
212
OPT_GLOBAL|OPT_READONLY|OPT_NUMBER|OPT_VENDOR,
213
},
214
{
215
"delta.compress",
216
0,
217
OPT_delta_compress,
218
"The delta base archive is \b/dev/null\b.",
219
0,
220
0,
221
OPT_GLOBAL|OPT_READONLY|OPT_VENDOR,
222
},
223
{
224
"delta.index",
225
0,
226
OPT_delta_index,
227
"The base file index (ordinal) of the current delta archive entry.",
228
"index",
229
0,
230
OPT_GLOBAL|OPT_READONLY|OPT_NUMBER|OPT_VENDOR,
231
},
232
{
233
"delta.method",
234
0,
235
OPT_delta_method,
236
"The delta method. Supported methods are:",
237
"method",
238
"\fDELTA\f",
239
OPT_GLOBAL|OPT_VENDOR,
240
},
241
{
242
"delta.op",
243
0,
244
OPT_delta_op,
245
"The current delta archive entry read mode operation:",
246
"op",
247
"[c:create?The file is not in the base archive and will be created.]\
248
[d:delete?The file will be deleted.]\
249
[p:pass?The file is not a delta and will be copied verbatim.]\
250
[u:update?The file is a delta and will be updated against the\
251
corresponding base archive entry.]\
252
[v:verify?No data change but the file metatdata will be updated\
253
to match the delta archive.]\
254
",
255
OPT_GLOBAL|OPT_READONLY|OPT_VENDOR,
256
},
257
{
258
"delta.ordered",
259
0,
260
OPT_delta_ordered,
261
"The base and delta archive members are ordered (sorted) by name.",
262
0,
263
0,
264
OPT_GLOBAL|OPT_READONLY|OPT_VENDOR,
265
},
266
{
267
"delta.update",
268
0,
269
OPT_delta_update,
270
"Only update files in the delta -- do not update files in the base that are not in the delta.",
271
0,
272
0,
273
OPT_GLOBAL|OPT_VENDOR,
274
},
275
{
276
"delta.version",
277
0,
278
OPT_delta_version,
279
"The delta method version.",
280
"version",
281
0,
282
OPT_GLOBAL|OPT_READONLY|OPT_VENDOR,
283
},
284
{
285
"descend",
286
'd',
287
OPT_descend,
288
"Command line directories name themselves and descendents.",
289
0,
290
0,
291
OPT_INVERT,
292
},
293
{
294
"device",
295
0,
296
OPT_device,
297
"The device major and minor number string, empty if not a device file.",
298
0,
299
0,
300
OPT_READONLY,
301
},
302
{
303
"devmajor",
304
0,
305
OPT_devmajor,
306
"The major device number, 0 if not supported.",
307
0,
308
0,
309
OPT_READONLY,
310
},
311
{
312
"devminor",
313
0,
314
OPT_devminor,
315
"The minor device number, 0 if not supported.",
316
0,
317
0,
318
OPT_READONLY,
319
},
320
{
321
"different",
322
'U',
323
OPT_different,
324
"Only copy archive members that have different modify time, mode, or size\
325
than the target files. Target file names are checked after \b--edit\b\
326
options are applied.",
327
},
328
{
329
"dir",
330
0,
331
OPT_dir,
332
"File directory name (base elided).",
333
0,
334
0,
335
OPT_READONLY,
336
},
337
{
338
"dots",
339
0,
340
OPT_dots,
341
"Print a dot on the standard error for each block transferred.",
342
},
343
{
344
"edit",
345
's',
346
OPT_edit,
347
"Pathname substitution from \aold\a to \anew\a.\
348
The first character is the expression delimiter.\
349
There may be more than one edit expression;\
350
each is applied in order from left to right.",
351
",old,new,[glpsu]][i]]",
352
"[+g?All \aold\a patterns.]\
353
[+l?Convert \anew\a to lower case.]\
354
[+p?Print the edit result on the standard error.]\
355
[+s?Stop edits on path if this edit succeeds.]\
356
[+u?Convert \anew\a to upper case.]\
357
[+i?Append member index to pathname in \b.%04d format\b.]",
358
},
359
{
360
"entry",
361
0,
362
OPT_entry,
363
"File entry ordinal.",
364
0,
365
0,
366
OPT_HEADER,
367
},
368
{
369
"eom",
370
0,
371
OPT_eom,
372
"End of media prompt or !\acommand\a. Processing terminates if\
373
\b!\b\acommand\a returns non-zero exit status or if \b!\b is\
374
specified.",
375
"[!]][prompt]]",
376
},
377
{
378
"exact",
379
'n',
380
OPT_exact,
381
"Exit after each file arg matches exactly once.",
382
},
383
{
384
"exthdr.name",
385
0,
386
OPT_extended_name,
387
"Equivalent to \bheader\b:=\aformat\a.",
388
"format",
389
},
390
{
391
"file",
392
'f',
393
OPT_file,
394
"The main archive file name.",
395
"path",
396
},
397
{
398
"filter",
399
0,
400
OPT_filter,
401
"Input/output file filter command. \acommand\a is applied to each\
402
file as it is read from or written to the archive. \acommand\a is\
403
split into space separated arguments, and is executed with the\
404
pathname of the file to be processed as the last argument.\
405
The standard output of the resulting command is read by \bpax\b.\
406
\b--nodescend\b is implied by \b--filter\b. If \acommand\a is \b-\b\
407
and the archive is being written and there are no command line\
408
\afile\a arguments, then each line on the standard input is\
409
interpreted as a delimiter separated command:\
410
\bX\b\aoptions\a\bX\b\acommand\a\bX\b\aphysical\a\bX\b\alogical\a,\
411
where:",
412
"command",
413
"[+X?A delimiter character that does not appear outside quotes.]\
414
[+options?\b,\b separated [\bno\b]]\aname\a[=\avalue\a]] options:]{\
415
[+logical?Override the command line \b--logical\b and\
416
\b--physical\b options for this file.]\
417
[+physical?Override the command line \b--logical\b and\
418
\b--physical\b options for this file.]\
419
}\
420
[+command?A shell command that reads the physical file and writes\
421
the filtered contents to the standard output. If \acommand\a\
422
is empty then the file contents are copied unchanged.]\
423
[+physical?The actual file path, used for archive status.]\
424
[+logical?The file path as it will appear in the archive. If\
425
\alogical\a is empty then the \aphysical\a path is used. The\
426
resulting path is still subject to any \b--edit\b options.]"
427
},
428
{
429
"forceconvert",
430
0,
431
OPT_forceconvert,
432
"Force \b--from\b conversion even if the data contains control\
433
characters in the first 256 bytes.",
434
},
435
{
436
"format",
437
'x',
438
OPT_format,
439
"The archive format. Formats are automatically detected on read. A\
440
basic, compress and delta format may be combined, separated by \b:\b.\
441
Each format may be followed by =\bdetails\b; details are format\
442
specific. The supported formats are:",
443
"format:=" FMT_DEFAULT,
444
"\fformats\f",
445
},
446
{
447
"from",
448
0,
449
OPT_from,
450
"File data input character set name.\
451
Only files that have no control characters in the first 256 bytes\
452
are converted. See \b--charset\b for supported character set names.",
453
"charset",
454
"\fcharsets\f",
455
},
456
{
457
"gid",
458
0,
459
OPT_gid,
460
"Group id. The default is the group id of the invoking process.",
461
"group",
462
0,
463
OPT_HEADER|OPT_NUMBER,
464
},
465
{
466
"globexthdr.name",
467
0,
468
OPT_global_name,
469
"Equivalent to \bheader\b=\aformat\a.",
470
"format",
471
},
472
{
473
"gname",
474
0,
475
OPT_gname,
476
"Group name. The default is the group name of the invoking process.",
477
"group",
478
0,
479
OPT_HEADER,
480
},
481
{
482
"hdrcharset",
483
0,
484
OPT_hdrcharset,
485
"The name of the character set used to encode text fields in pax extended\
486
header record text fields. See \b--charset\b for supported character\
487
set names.",
488
"charset",
489
0,
490
OPT_HEADER,
491
},
492
{
493
"header",
494
0,
495
OPT_header,
496
"\bheader\b=\aformat\a sets the global header path name format to the\
497
\blistopt\b \aformat\a. The default is \b" HEADER_EXTENDED_STD "\b\
498
when strict conformance is in effect (see \bgetconf\b(1) CONFORMANCE)\
499
and \b" HEADER_EXTENDED "\b otherwise. \bheader\b:=\aformat\a\
500
sets the extended header path name format to the \blistopt\b\
501
\aformat\a. The default is \b" HEADER_GLOBAL_STD "\b when strict\
502
conformance is in effect and \b" HEADER_GLOBAL "\b otherwise.\
503
The strict conformance defaults are prone to global header filename\
504
collisions and are ill-defined when extended header names exceed the\
505
underlying header format limits.",
506
"format",
507
},
508
{
509
"ignore",
510
0,
511
OPT_ignore,
512
"\bignore\b=\apattern\a ignores all global and extended header keywords\
513
matching the \bksh\b(1) \apattern\a; \bignore\b:=\apattern\a ignores\
514
all extended header keywords matching \apattern\a.",
515
"pattern",
516
},
517
{
518
"ino",
519
0,
520
OPT_ino,
521
"The file serial number, 0 if not supported.",
522
0,
523
0,
524
OPT_READONLY,
525
},
526
{
527
"install",
528
0,
529
OPT_install,
530
"Generate an installation \bsh\b(1) script file that contains\
531
\bchmod\b(1), \bchgrp\b(1) and \bchown\b(1) commands to restore\
532
file modes and ownership not supported by standard \bcpio\b(1)\
533
and \btar\b(1). Only files with user or group specific\
534
read/execute/setuid permissions are included in the script.\
535
The script is added to the archive with member name \apath\a.",
536
"path",
537
},
538
{
539
"intermediate",
540
'I',
541
OPT_intermediate,
542
"Copy each file to an intermediate name and rename to the\
543
real name if the intermediate copy succeeds; otherwise retain\
544
the original file and issue a diagnostic.",
545
},
546
{
547
"invalid",
548
0,
549
OPT_invalid,
550
"Invalid path action:",
551
"action",
552
"[b:binary?hdrcharset=BINARY extended header record for unencodable data.]\
553
[i:bypass|ignore?Silently ignore.]\
554
[p:rename|prompt?Prompt for new name.]\
555
[t:write|translate?Automatically translate and/or truncate\
556
to local specifications.]\
557
[u:utf-8|UTF-8?Convert to UTF-8.]",
558
},
559
{
560
"invert",
561
'c',
562
OPT_invert,
563
"Invert pattern match sense. The !(...) construct is more general.",
564
},
565
{
566
"keepgoing",
567
'K',
568
OPT_keepgoing,
569
"Attempt to skip over damaged input archive data.",
570
},
571
{
572
"label",
573
0,
574
OPT_label,
575
"Append \astring\a to the volume label; \blabel\b:=\astring\a\
576
prepends \astring\a.",
577
"string",
578
},
579
{
580
"link",
581
'l',
582
OPT_link,
583
"Hard link files on output if possible.",
584
},
585
{
586
"linkdata",
587
0,
588
OPT_linkdata,
589
"Output data with each hard link. The default outputs the\
590
data only with the first link in the archive.",
591
},
592
{
593
"linkop",
594
0,
595
OPT_linkop,
596
"The link operation string, \b==\b for hard links, \b->\b for\
597
symbolic links, otherwise empty.",
598
0,
599
0,
600
OPT_READONLY,
601
},
602
{
603
"linkpath",
604
0,
605
OPT_linkpath,
606
"Symbolic link pathname.",
607
"path",
608
0,
609
OPT_HEADER,
610
},
611
{
612
"listformat|listopt",
613
0,
614
OPT_listformat,
615
"Append to the member listing format string. \aformat\a follows\
616
\bprintf\b(3) conventions, except that \bsfio\b(3) inline ids\
617
are used instead of arguments:\
618
%[-+]][\awidth\a[.\aprecis\a[.\abase\a]]]]]](\aid\a[:\asubformat\a]])\achar\a.\
619
If \achar\a is \bs\b then the string form of the item is listed,\
620
otherwise the corresponding numeric form is listed. \asubformat\a\
621
overrides the default formatting for \aid\a. All of the file related\
622
options are supported as \aid\as, along with the following:",
623
"format",
624
"\flistformat\f",
625
},
626
{
627
"listmacro",
628
0,
629
OPT_listmacro,
630
"Define a \b--listformat\b macro.",
631
"name[=value]]",
632
},
633
{
634
"local",
635
0,
636
OPT_local,
637
"Reject files and links that traverse outside the current directory.",
638
},
639
{
640
"logical|follow",
641
'L',
642
OPT_logical,
643
"Follow symbolic links. The default is determined by\
644
\bgetconf PATH_RESOLVE\b.",
645
},
646
{
647
"magic",
648
0,
649
OPT_magic,
650
"The header magic string; empty if not supported.",
651
0,
652
0,
653
OPT_READONLY,
654
},
655
{
656
"mark",
657
0,
658
OPT_mark,
659
"The file type mark character string:",
660
0,
661
"[+=?hard link]\
662
[+@?symbolic link]\
663
[+/?directory]\
664
[+|?fifo]\
665
[+=?socket]\
666
[+$?block or character special]\
667
[+*?executable]",
668
OPT_READONLY,
669
},
670
{
671
"maxout",
672
0,
673
OPT_maxout,
674
"Output media size limit.",
675
"size",
676
0,
677
OPT_NUMBER,
678
},
679
{
680
"metaphysical",
681
'H',
682
OPT_metaphysical,
683
"Follow command argument symbolic links, otherwise don't follow.\
684
The default is determined by \bgetconf PATH_RESOLVE\b.",
685
},
686
{
687
"meter",
688
'm',
689
OPT_meter,
690
"Display a one line text meter showing archive read progress.\
691
The input must be seekable. \bcompress\b and \bbzip\b uncompressed\
692
input size is estimated.",
693
},
694
{
695
"mkdir",
696
0,
697
OPT_mkdir,
698
"Create intermediate directories on output. On by default.",
699
},
700
{
701
"mode",
702
0,
703
OPT_mode,
704
"The file type and acces mode.",
705
0,
706
0,
707
OPT_READONLY,
708
},
709
{
710
"mtime",
711
0,
712
OPT_mtime,
713
"Preserve or set file modify times.",
714
"time",
715
0,
716
OPT_HEADER|OPT_OPTIONAL,
717
},
718
{
719
"name",
720
0,
721
OPT_name,
722
"File base name (directory elided).",
723
0,
724
0,
725
OPT_HEADER,
726
},
727
{
728
"newer",
729
'N',
730
OPT_newer,
731
"Only copy archive members that are newer than the target files.\
732
Target file names are checked after \b--edit\b options are applied.",
733
},
734
{
735
"nlink",
736
0,
737
OPT_nlink,
738
"The hard link count.",
739
0,
740
0,
741
OPT_READONLY,
742
},
743
{
744
"options",
745
'o',
746
OPT_options,
747
"Set options without leading -- from \astring\a.",
748
"string",
749
},
750
{
751
"ordered",
752
'O',
753
OPT_ordered,
754
"Input files and base are ordered by name.",
755
},
756
{
757
"owner",
758
0,
759
OPT_owner,
760
"Change output file owner to current user or to \auid\a\
761
if specified.",
762
"uid",
763
},
764
{
765
"passphrase",
766
'E',
767
OPT_passphrase,
768
"Passphrase for formats that support encryption. The default value is"
769
" prompted on and read from \b/dev/tty\b.",
770
"passphrase",
771
},
772
{
773
"path",
774
0,
775
OPT_path,
776
"File path name.",
777
"path",
778
0,
779
OPT_HEADER,
780
},
781
{
782
"physical",
783
'P',
784
OPT_physical,
785
"Don't follow symbolic links.\
786
The default is determined by \bgetconf PATH_RESOLVE\b.",
787
},
788
{
789
"pid",
790
0,
791
OPT_pid,
792
"\bpax\b process id.",
793
},
794
{
795
"preserve",
796
'p',
797
OPT_preserve,
798
"Preserve selected file attributes:",
799
"aemops",
800
"[+a?Don't preserve access time.]\
801
[+e?Preserve everything permissible.]\
802
[+m?Don't preserve modify time.]\
803
[+o?Preserve user, group, setuid and setgid.]\
804
[+p?Preserve mode.]\
805
[+s?Preserve setuid and setgid.]",
806
OPT_OPTIONAL,
807
},
808
{
809
"read",
810
'r',
811
OPT_read,
812
"Read files from the archive.",
813
},
814
{
815
"record-charset",
816
0,
817
OPT_record_charset,
818
"Enable character set translation. On by default.",
819
},
820
{
821
"record-delimiter",
822
0,
823
OPT_record_delimiter,
824
"\bvdb\b format record delimiter character.\
825
No delimiter if omitted. The default is ; .",
826
"char",
827
},
828
{
829
"record-format",
830
0,
831
OPT_record_format,
832
"Labeled tape record format:",
833
"DFSUV",
834
"[+D?decimal variable]\
835
[+F?fixed length]\
836
[+S?spanned]\
837
[+U?input block size]\
838
[+B?binary variable]",
839
},
840
{
841
"record-header",
842
0,
843
OPT_record_header,
844
"Member header, NULL if omitted. The default value is format specific.",
845
},
846
{
847
"record-line",
848
0,
849
OPT_record_line,
850
"Records are lines. The default is format specific.",
851
},
852
{
853
"record-match",
854
0,
855
OPT_record_match,
856
"Select record formats that match \apattern\a.",
857
"pattern",
858
},
859
{
860
"record-pad",
861
0,
862
OPT_record_pad,
863
"Pad records. The default is format specific.",
864
},
865
{
866
"record-size",
867
0,
868
OPT_record_size,
869
"Fixed length record size. The default is format specific.",
870
"size",
871
0,
872
OPT_NUMBER,
873
},
874
{
875
"record-trailer",
876
0,
877
OPT_record_trailer,
878
"Member trailer, NULL if omitted. The default is format specific.",
879
"string",
880
},
881
{
882
"release",
883
0,
884
OPT_release,
885
"The \bpax\b implementation release stamp.",
886
"string",
887
0,
888
OPT_GLOBAL|OPT_READONLY|OPT_IGNORE|OPT_VENDOR,
889
},
890
{
891
"reset-atime",
892
't',
893
OPT_reset_atime,
894
"Reset the file access times of copied files.",
895
},
896
{
897
"sequence",
898
0,
899
OPT_sequence,
900
"The archive member sequence number. Numbers for volumes >1 are of the\
901
form \avolume\a.\asequence\a.",
902
0,
903
0,
904
OPT_READONLY,
905
},
906
{
907
"size",
908
0,
909
OPT_size,
910
"File size.",
911
"size",
912
0,
913
OPT_HEADER|OPT_OPTIONAL,
914
4
915
},
916
{
917
"strict",
918
'S',
919
OPT_strict,
920
"Disable non-standard extensions. The default is determined\
921
by the \bgetconf\b(1) CONFORMANCE setting.",
922
},
923
{
924
"summary",
925
0,
926
OPT_summary,
927
"List summary information for each archive. On by default.",
928
},
929
{
930
"symlink",
931
0,
932
OPT_symlink,
933
"symlink files if possible.",
934
},
935
{
936
"sync|fsync",
937
'F',
938
OPT_sync,
939
"\bfsync\b(2) each file after it is copied.",
940
},
941
{
942
"tape",
943
0,
944
OPT_tape,
945
"Canonical tape unit name and operations.",
946
"[#]][lmhcu]][n]][bv]][s[#]]]][k[#]]]]",
947
"[+#?unit number [0-9]]]\
948
[+l?low density]\
949
[+m?medium density]\
950
[+h?high density]\
951
[+c?compressed]\
952
[+u?uncompressed]\
953
[+n?don't rewind on close]\
954
[+b?bsd behavior]\
955
[+v?system V behavior]\
956
[+s[#]]?skip all [#]] volumes]\
957
[+k[#]]?keep all [#]] volumes after skip]",
958
},
959
{
960
"test",
961
'T',
962
OPT_test,
963
"Test mask for debugging. Multiple values are or'ed together.",
964
"mask",
965
0,
966
OPT_NUMBER,
967
},
968
{
969
"testdate",
970
0,
971
OPT_testdate,
972
"\b--listformat\b time values newer than \adate\a will be printed\
973
as \adate\a. Used for regression testing.",
974
"date",
975
},
976
{
977
"times",
978
0,
979
OPT_times,
980
"Preserve \batime\b, \bctime\b, and \bmtime\b.",
981
},
982
{
983
"tmp",
984
0,
985
OPT_tmp,
986
"The value of the \bTMPDIR\b environment variable if defined,\
987
otherwise \b/tmp\b.",
988
},
989
{
990
"to",
991
0,
992
OPT_to,
993
"Output character set. See \b--charset\b for supported\
994
character set names.",
995
"name",
996
},
997
{
998
"typeflag",
999
0,
1000
OPT_typeflag,
1001
"The header type flag string; empty if not supported.",
1002
0,
1003
0,
1004
OPT_READONLY,
1005
},
1006
{
1007
"uid",
1008
0,
1009
OPT_uid,
1010
"User id. The default is the user id of the invoking process.",
1011
"user",
1012
0,
1013
OPT_HEADER|OPT_NUMBER,
1014
},
1015
{
1016
"uname",
1017
0,
1018
OPT_uname,
1019
"User name. The default is the user name of the invoking process.",
1020
"user",
1021
0,
1022
OPT_HEADER,
1023
},
1024
{
1025
"unblocked",
1026
0,
1027
OPT_unblocked,
1028
"Force unblocked input/output. The default is format specific.\
1029
Both input and output are unblocked if the value is omitted.",
1030
"i|o",
1031
},
1032
{
1033
"uncompressed|delta.size",
1034
0,
1035
OPT_uncompressed,
1036
"The uncompressed size of the current archive entry, 0 if the\
1037
entry is not compressed.",
1038
"size",
1039
0,
1040
OPT_GLOBAL|OPT_READONLY|OPT_NUMBER|OPT_VENDOR,
1041
},
1042
{
1043
"update",
1044
'u',
1045
OPT_update,
1046
"Only copy archive members that are newer than the target files.\
1047
Target file names are checked before \b--edit\b options are applied.",
1048
},
1049
{
1050
"verbose",
1051
'v',
1052
OPT_verbose,
1053
"Produce long listings or list each file name as it is processed.",
1054
},
1055
{
1056
"verify",
1057
'i',
1058
OPT_verify,
1059
"Prompt for verification and/or rename.",
1060
},
1061
{
1062
"version",
1063
0,
1064
OPT_version,
1065
"The header version string; empty if not supported.",
1066
0,
1067
0,
1068
OPT_READONLY,
1069
},
1070
{
1071
"warn",
1072
'W',
1073
OPT_warn,
1074
"Enable archive format specific warnings.",
1075
},
1076
{
1077
"write",
1078
'w',
1079
OPT_write,
1080
"Write files to the archive.",
1081
},
1082
{
1083
"yes",
1084
'y',
1085
OPT_yes,
1086
"Prompt for yes/no file verification.",
1087
},
1088
{ 0 }
1089
};
1090
1091