aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/pax.1
blob: 965c9aaf4ccc5aea903688de1a16d4011edc2386 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
.\" Copyright (c) 1992 Keith Muller.
.\" Copyright (c) 1992, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Keith Muller of the University of California, San Diego.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)pax.1	8.4 (Berkeley) 4/18/94
.\"	%Id: pax.1,v 1.8 1998/05/31 22:43:57 steve Exp %
.\" jpman %Id: pax.1,v 1.4 1997/08/25 03:45:37 horikawa Stab %
.\"
.Dd April 18, 1994
.Dt PAX 1
.Os BSD 4.4
.Sh 名称
.Nm pax
.Nd ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う
.Sh 書式
.Nm pax
.Op Fl cdnv
.Bk -words
.Op Fl f Ar archive
.Ek
.Bk -words
.Op Fl s Ar replstr
.Ar ...
.Ek
.Bk -words
.Op Fl U Ar user
.Ar ...
.Ek
.Bk -words
.Op Fl G Ar group
.Ar ...
.Ek
.Bk -words
.Oo
.Fl T
.Op Ar from_date
.Op Ar ,to_date
.Oc
.Ar ...
.Ek
.Op Ar pattern ...
.Nm pax
.Fl r
.Op Fl cdiknuvDYZ
.Bk -words
.Op Fl f Ar archive
.Ek
.Bk -words
.Op Fl o Ar options
.Ar ...
.Ek
.Bk -words
.Op Fl p Ar string
.Ar ...
.Ek
.Bk -words
.Op Fl s Ar replstr
.Ar ...
.Ek
.Op Fl E Ar limit
.Bk -words
.Op Fl U Ar user
.Ar ...
.Ek
.Bk -words
.Op Fl G Ar group
.Ar ...
.Ek
.Bk -words
.Oo
.Fl T
.Op Ar from_date
.Op Ar ,to_date
.Oc
.Ar ...
.Ek
.Op Ar pattern ...
.Nm pax
.Fl w
.Op Fl dituvHLPX
.Bk -words
.Op Fl b Ar blocksize
.Ek
.Oo
.Op Fl a
.Op Fl f Ar archive
.Oc
.Bk -words
.Op Fl x Ar format
.Ek
.Bk -words
.Op Fl s Ar replstr
.Ar ...
.Ek
.Bk -words
.Op Fl o Ar options
.Ar ...
.Ek
.Bk -words
.Op Fl U Ar user
.Ar ...
.Ek
.Bk -words
.Op Fl G Ar group
.Ar ...
.Ek
.Bk -words
.Op Fl B Ar bytes
.Ek
.Bk -words
.Oo
.Fl T
.Op Ar from_date
.Op Ar ,to_date
.Op Ar /[c][m]
.Oc
.Ar ...
.Ek
.Op Ar file ...
.Nm pax
.Fl r
.Fl w
.Op Fl diklntuvDHLPXYZ
.Bk -words
.Op Fl p Ar string
.Ar ...
.Ek
.Bk -words
.Op Fl s Ar replstr
.Ar ...
.Ek
.Bk -words
.Op Fl U Ar user
.Ar ...
.Ek
.Bk -words
.Op Fl G Ar group
.Ar ...
.Ek
.Bk -words
.Oo
.Fl T
.Op Ar from_date
.Op Ar ,to_date
.Op Ar /[c][m]
.Oc
.Ar ...
.Ek
.Op Ar file ...
.Ar directory
.Sh 解説
.Nm
は、アーカイブファイルの読み込み、書きだし、アーカイブファイルに
格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを
行います。
.Nm
の操作は指定したアーカイブフォーマットとは独立しており、また
.Nm
は広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。
.Nm
のサポートするアーカイブフォーマット一覧は、
.Fl x
オプションの説明時に示します。
.Pp
.Fl r
および
.Fl w
は、以下の
.Nm
の機能モードのいずれかを指定するのに用いられます。その機能モードとは、
.Em 一覧表示モード、読み込みモード、書き込みモード、コピーモード
の 4 つです。
.Bl -tag -width 6n
.It <none>
.Em 一覧表示モードです。
.Nm
は、
.Dv 標準入力
から読み込まれたアーカイブ内の格納ファイルのリストを
.Dv 標準出力
へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した
.Ar pattern
に一致するものが採用されます。
ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って
書き出されます。
.It Fl r
.Em 読み込みモードです。
.Nm
は、
.Dv 標準入力
からアーカイブ読み込み、その内に格納されたファイルのうち指定した
.Ar pattern
に一致するファイル名を持つファイルを展開します。
アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。
展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる
ファイル階層は完全な形で展開されます。
展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに
生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、
そしてファイルモードの設定についての詳細は、
.Fl p
オプションのところで述べます。
.It Fl w
.Em 書き込みモードです。
.Nm
は、
.Ar file
オペランドで指定したファイル群のアーカイブを
指定したフォーマットで標準出力に書き出します。
.Ar file
オペランドが指定されない場合には、1 行に 1 つずつ
コピーするファイルを記述したリストを標準入力から読み込みます。
.Ar file
オペランドがディレクトリの場合、そのディレクトリ配下の
全ファイルが作成されるアーカイブに含まれます。
.It Fl r Fl w
.Em コピーモードです。
.Nm
は、ファイルオペランドで指定したファイル群を、指定した
.Ar ディレクトリ
にコピーします。
.Ar file
オペランドが指定されない場合には、1 行に 1 つずつ
コピーするファイルを記述したリストを標準入力から読み込みます。
.Ar file
オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、
コピー先として指定したディレクトリ配下に作成されます。
.Em コピーモード
は、ファイルがアーカイブファイルに対して書き込まれ、
そして一方でそのアーカイブファイルが展開されるかのように見ます。
ただし、これはオリジナルファイルとコピーファイルの間に
ハードリンクが張られるかも知れない事を除きます
.Ns ( Fl l
オプションを参照して下さい)。
.Pp
.Em 注意
コピー先の
.Ar ディレクトリ
には、コピー元にあるものと同じファイル名の
.Ar file
オペランドや
.Ar file
オペランドで指定されるディレクトリ階層の配下にあるファイル名などを
指定してはいけません。
そのような場合、
.Em コピー
の結果は予測できないものになります。
.El
.Pp
.Em 読み込み
操作や
.Em 一覧表示
動作において壊れたアーカイブを処理する場合、
.Nm
は媒体破損を可能な限り復旧し、
アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の
処理の詳細は
.Fl E
オプションを参照して下さい)。
.Sh オペランド
.Pp
.Ar directory
オペランドは、コピー先ディレクトリの指定を行います。
.Ar directory
オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、
もしくは指定したオペランドがディレクトリでない場合には、
.Nm
は、0 以外のステータスでプログラムを終了します。
.Pp
.Ar pattern
オペランドは、アーカイブに格納されているファイルの名前を選択するために
用いられます。
アーカイブメンバは、
.Xr fnmatch 3
に記述のある表記に一致するパターンを用いて選択されます。
.Ar pattern
オペランドが指定されない場合には、アーカイブ内に格納されている
全てのメンバが選択されます。
.Ar pattern
がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に
位置する全てのファイルが選択されます。
もしアーカイブ内に
.Ar pattern
オペランドの指定と一致する名前のファイルがない場合には、
.Nm
は
.Ar 標準エラー出力
に出力される診断メッセージにこの
.Ar pattern
オペランドを書き出し、0 以外のステータスでプログラムを終了します。
.Pp
.Ar file
オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。
.Ar file
オペランドが 1 つもアーカイブメンバを選択しない場合には、
.Nm
は
.Dv 標準エラー出力
に出力される診断メッセージにこの
.Ar file
オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。
.Sh オプション
.Pp
.Nm
では、以下のオプションが使用可能です。
.Bl -tag -width 4n
.It Fl r
アーカイブファイルを
.Dv 標準入力
から読み込み、
.Ar files
で指定したファイルを展開します。
アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、
これらのディレクトリは、
.Xr mkdir 2
の mode 引数のところに
.Dv S_IRWXU , S_IRWXG , S_IRWXO 
の
.Dv 論理和
を指定して呼び出された場合と同様に作成されます。
選択されたアーカイブ形式がリンクファイルの指定をサポートし、
かつアーカイブ展開時にリンク不可能である場合には、
.Nm
は、処理が終了する時に、診断メッセージを
.Dv 標準エラー出力
に書き出し、0 以外のステータスで終了します。
.It Fl w
指定したアーカイブフォーマットで、
.Dv 標準出力
にアーカイブを書き出します。
.Ar file
オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを
記述したリストを
.Dv 標準入力
から読み込みます。
このリストの各行の先頭や末尾には
.Aq 空白
を入れてはいけません。
.It Fl a
すでに存在するアーカイブファイルの後ろに、ファイル
.Ar files
を追加書き込みします。
.Fl x
オプションによるアーカイブフォーマット指定がされない場合、
アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの
フォーマットと同一になります。
アーカイブファイルに対して、そのアーカイブファイルのフォーマットと
異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、
.Nm
は即時に 0 以外の終了ステータスでプログラム終了します。
アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、
残りのアーカイブボリュームのブロックサイズとします。
.Pp
.Em 注意 :
多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。
そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、
アーカイブの破損もしくは他の予期せぬ結果を招くことになります。
特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない
ものです。
普通のファイルシステムのファイルとして、もしくはディスクデバイス上に
保存されているアーカイブについては、通常は追加書き込み処理をサポートします。
.It Fl b Ar blocksize
アーカイブを
.Em 書き出す
際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数
でブロック化します。
.Ar blocksize
で指定出来る値は、512 の倍数でなくてはならず、最大は 32256 です。
.Ar blocksize
で指定する数は、その最後に
.Li k
もしくは
.Li b
を付加することで、1024(1K) もしくは 512 の倍数として指定できます。
.Ar blocksizes
に指定する数字を
.Li x
で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。
アーカイブの書き込みのために指定するデバイスによっては、
ブロックサイズに対してさらに制限がかかることがあります。
ブロック化が指定されない場合には、デフォルトの
.Ar blocksize
は使用される特定のアーカイブフォーマットに依存します。
.Ns ( Fl x
オプションを参照して下さい)。
.It Fl c
.Ar pattern
に指定されたパターンにマッチしたファイルおよび
.Ar file
オペランドで指定されたファイル
.Em 以外
の、全てのファイルもしくはアーカイブ内メンバにマッチします。
.It Fl d
コピーもしくはアーカイブされるディレクトリ、もしくはアーカイブに格納され
ているディレクトリについて、指定パターンに一致した名前のディレクトリもし
くはアーカイブ内に格納されているディレクトリのみ処理し、そのディレクトリ
配下にあるファイルについては処理しません。
.It Fl f Ar archive
.Ar archive
で指定したファイルを入力元のアーカイブもしくは出力先のアーカイブに指定し
ます。この場合、デフォルトの
.Dv 標準入力
.Ns ( Em 一覧表示モード
および
.Em 読み込みモード
の場合) もしくは
.Dv 標準出力
.Ns ( Em 書き込みモード
) については無視されます。
1 つのアーカイブが複数のファイルもしくは異なるアーカイブデバイスに渡って
も構いません。必要があった場合、
.Nm
は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの
パス名の入力を促します。
.It Fl i
対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。
.Ar pattern
で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは
.Ar file
オペランドの指定に一致するファイルについて、
.Nm
は
.Pa /dev/tty
に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して
入力を促します。
それから
.Nm
は
.Pa /dev/tty
からデータを 1 行読み込みます。
その行が空行だった場合には、その時のファイルもしくはアーカイブ内の
格納ファイルについては、処理を行いません。
その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは
アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。
それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。
上記操作中に
.Dv <EOF>
を
.Pa /dev/tty
から受けとった場合、もしくは何らかの理由で
.Pa /dev/tty
をオープン出来なかった場合、
.Nm
は 0 以外の終了ステータスで即座に終了します。
.It Fl k
すでに存在するファイルに対する上書きをしません。
.It Fl l
(アルファベットの ``エル'' ) ファイルをリンクします。
.Em コピーモード
.Ns ( Fl r
.Fl w
) の場合には、コピー元コピー先間には可能な限りハードリンクが作成されます。
.It Fl n
アーカイブに格納されるファイルのうち、各
.Ar pattern
オペランドに指定した文字列パターンに一致するファイル名を持つ最初のものを
選択します。
アーカイブに格納されるファイルのうち
.Ar pattern
オペランドに指定した文字列パターン
に一致するもので、2 つめ以降のものは選択されません。
文字列パターンで指定した条件に合致するものがディレクトリだった場合、
そのディレクトリ配下のファイルについても選択されたものとみなされます(ただし、
.Fl d 
オプションが指定された場合にはこの限りではありません)。
.It Fl o Ar options
.Fl x
で指定されるアーカイブフォーマットから特定される、
アーカイブファイル展開/書き出しアルゴリズムの更新情報を指定します。
一般的に、
.Ar options
は
.Cm name=value
のように指定されます。
.It Fl p Ar string
1 つ以上のファイルの属性操作に関する動作をオプション指定します。
.Ar string
オプション引数は、ファイル展開時に、展開ファイルの属性を保存するか破棄す
るかを指定する文字列です。
string は、
.Cm a , e , m , o , p
の 5 つの指定文字から成ります。
複数の属性を同じ文字列の中につなげて記述したり、複数の
.Fl p 
オプションを指定したりすることもできます。
これらの文字は、以下のように動作の指定を行います:
.Bl -tag -width 2n
.It Cm a
ファイルのアクセス時間を保存しません。
デフォルトでは、ファイルのアクセスタイムは可能な限り保存されます。
.It Cm e
ファイルのユーザ ID, グループ ID, ファイルモードのビット、ファイルの
アクセス時間、ファイルの更新時間、これらの
.Sq 全ての属性を保存します。
本オプションは、
.Em スーパユーザ、
もしくは適正な権限を持ったユーザによって
使用されることを推奨します。
これは、アーカイブ内に格納されたすべてのファイルについて、
そのファイルの特性を保存するためです。
フラグを指定した場合は、
.Cm o 
および
.Cm p
フラグを指定したのと同様の効果を持ちます。
.It Cm m
ファイルの更新時間を保存しません。
デフォルトでは、ファイルの更新時間は可能な限り保存されます。
.It Cm o
ユーザ ID とグループ ID を保存します。
.It Cm p
ファイルモードのビットを
.Sq 保存します。
本オプションは、
ファイルについて、所有者情報以外の全ての情報の保存を希望するなど適正な
権限を持った
.Em ユーザ
に使用されることを推奨しています。
ファイルの時刻はデフォルトで保存されますが、
これを無効にしたり、展開時の時刻を用いるようにするために
別に 2 つのフラグが用意されています。
.El
.Pp
先述のオプション一覧にて、
.Sq 属性の保存
とは、起動したプロセスの権限に応じて
アーカイブ内に保存された属性が展開ファイルに反映されることを意味します。
これ以外の場合は、展開されるファイルの属性は、
通常のファイル生成と同様に決定されます。
.Cm e
と
.Cm o
のどちらも指定されない場合、あるいは
ユーザ ID とグループ ID がいかなる理由にせよ保存されない場合、
.Nm
はファイル属性中の
.Dv S_ISUID 
.Em ( setuid )
および
.Dv S_ISGID
.Em ( setgid )
のビットを設定しません。
これらの情報の引き継ぎが何らかの理由で失敗した場合、
.Nm
は診断メッセージを
.Dv 標準エラー出力
に書き出します。
これらの情報の保存失敗は、最終的な終了ステータスに影響しますが、
展開されたファイルが削除されるようなことはありません。
ファイル属性の操作に関するオプション文字が重複していたり、
他のオプション文字と処理上の競合を起こす場合には、
それらのオプションの中で一番最後に記述されたものの処理が採用されます。
例えば、
.Dl Fl p Ar eme
が指定された場合には、ファイルの更新時間は保存されます。
.It Fl s Ar replstr
アーカイブ内に格納されているファイルのうち、
.Ar pattern
オペランドもしくは
.Ar file
オペランドで指定されたもののファイル名を、
.Ar replstr
で指定された置換表現にしたがって更新します。この置換表現は、
.Xr ed 1
にて記述されている正規表現の書法に準じます。
これらの正規表現の書式は
.Dl /old/new/[gp]
です。
.Xr ed 1
に示されるように、
.Cm old
は基本的な正規表現であり、
.Cm new
はアンパサンド (&)、後方参照 \\n (nの部分は数字が入ります)、
補助表現を含むことができます。
文字列
.Cm old
には、
.Dv 改行文字
を含んでも構いません。
ヌル文字以外のいかなる文字も、区切り文字として用いることが可能です
(ここでは / を示しました)。
また、複数の
.Fl s
表現を指定することが許されています。
これらの表現はコマンドラインで指定された順に適用され、
最初の置換が成功した時点でその置換を終了します。
置換処理の追加処理指定として、
.Cm g
を指定した場合には、継続してファイル名の置換を行うことを指示します。
この場合、前回置換に成功した直後の文字から継続して置換を行います。
そして最初に置換を失敗したときに
.Cm g
オプションの処理を終了します。
置換処理の追加処理指定として
.Cm p
を指定した場合には、最初の置換成功結果を
.Dv 標準エラー出力
に以下のフォーマットで書き出します:
.Dl <original pathname> >> <new pathname>
空白文字に置換される通常ファイルもしくはアーカイブ内に格納されたファイルの
ファイル名は、処理対象として選択されず、そのファイル名に対する
処理はスキップされます。
.It Fl t
.Nm
が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの
アクセス時間を、
.Nm
がそれらのファイルやディレクトリを処理する前のものに再設定します。
.It Fl u
同じ名前ですでに存在するファイルやアーカイブ内に格納されているファイルより
古い (ファイル更新時刻が古い) ファイルを無視します。
.Em 読み込み処理
においては、アーカイブ内のファイルにファイルシステム上にすでに存在するものと
同じ名前のファイルがあり、アーカイブ内のファイルの方が新しい場合に、
アーカイブ内のファイルが展開されます。
.Em 書き込み処理
においては、ファイルシステム上のファイルとアーカイブ内のファイルの名前が
同じもので、かつファイルシステム上のファイルの方がアーカイブ内のものより
も新しい場合に、ファイルシステム上のファイルのアーカイブへの格納が行われます。
.Em コピー処理
においては、コピー先にあるファイルとコピー元にあるファイルが同一のファイル名
を持ち、かつコピー元にあるファイルの方が新しい場合に、
コピーあるいはリンクが行われます。
.It Fl v
.Em 一覧表示処理
において、
.Xr ls 1
コマンドの
.Fl l
オプションを用いた時の表示と同じ形式を用いて、アーカイブ内容の表示を行います。
アーカイブの他のメンバとの間にハードリンクを構成するファイルのパス名に
ついては、以下のフォーマットで出力されます。
.Dl <ls -l listing> == <link name>
アーカイブの他のメンバとの間にシンボリックリンクを構成するファイルの
パス名については、以下のフォーマットで出力されます。
.Dl <ls -l listing> => <link name>
ここで <ls -l listing> の箇所は、
.Xr ls 1
コマンドを
.Fl l
オプションを付けて実行した場合の出力形式になります。
他のオプショナルモード (読み込みモード、書き込みモード、そしてコピーモード) 
の場合には、当該ファイルもしくはアーカイブ内のファイルの処理が始まるとすぐに、
それらのパス名が末尾の
.Dv 改行文字
なしで
.Dv 標準エラー出力
に書き込まれ、フラッシュされます。
ファイル名に付随する
.Dv 改行文字
はバッファリングされることなく、ファイルが読み込まれたもしくは書き込まれた
直後に書き出されます。
.It Fl x Ar format
出力されるアーカイブフォーマットを指定します。デフォルトフォーマットは、
.Ar ustar
フォーマットです。
.Nm
は、現在以下のアーカイブフォーマットをサポートします:
.Bl -tag -width "sv4cpio"
.It Ar cpio
.St -p1003.2
標準にて規定される、拡張 cpio 交換形式です。
本フォーマットのデフォルトブロックサイズは、5120 バイトです。
このフォーマットで欠落するファイルの inode およびデバイス情報 (この
フォーマットでファイルのハードリンクの検出に用いられます) は、
.Nm
にて検出され、復元されます。
.It Ar bcpio
古い binary cpio フォーマットです。
本フォーマットのデフォルトのブロックサイズは、5120 バイトです。
本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが
使えるならば、そちらを使用したほうがよいでしょう。
このフォーマットで欠落するファイルの inode およびデバイス情報 (この
フォーマットでファイルのハードリンクの検出に用いられます) は、
.Nm
にて検出され、復元されます。
.It Ar sv4cpio
Unix System V Release 4(SVR4) の cpio フォーマットです。
本フォーマットのデフォルトのブロックサイズは 5120 バイトです。
このフォーマットで欠落するファイルの inode およびデバイス情報 (この
フォーマットでファイルのハードリンクの検出に用いられます) は、
.Nm
にて検出され、復元されます。
.It Ar sv4crc
SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。
本フォーマットのデフォルトのブロックサイズは 5120 バイトです。
このフォーマットで欠落するファイルの inode およびデバイス情報 (この
フォーマットでファイルのハードリンクの検出に用いられます) は、
.Nm
にて検出され、復元されます。
.It Ar tar
BSD4.3 から用いられている古い BSD tar フォーマットです。
本フォーマットのデフォルトのブロックサイズは、10240 バイトです。
本フォーマットでは、アーカイブ内に格納されるファイルのパス名は 100 文字以内
でなくてはなりません。
.Em 通常ファイル、ハードリンクファイル、
.Em シンボリックリンクファイル、ディレクトリ
のみがアーカイブ内に格納されます (他のファイルシステムタイプについては、
サポートされません)。
さらに古い tar フォーマットとの過去の互換性は、
.Fl o
オプションを用いて、アーカイブへのファイル保存時に
ディレクトリを無視することで実現されます。
本オプションは、以下のように指定します:
.Dl Fl o Cm write_opt=nodir
.It Ar ustar
.St -p1003.2
標準にて規定される、
拡張 tar 交換形式です。
本フォーマットのデフォルトのブロックサイズは、10240 バイトです。
本フォーマットのアーカイブ内に保存されるファイルのパス名は、250 文字以下
の長さでなくてはなりません。
.El
.Pp
.Nm
は、指定したアーカイブフォーマットの制限に起因して、ファイルの
アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、
それを検出し、報告します。
各アーカイブフォーマットを使用した場合には、
使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。
典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、
ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、
そしてファイルタイプなど。
(なお、制限要素はこれらに限られるわけではありません。)
.It Fl B Ar bytes
単一のアーカイブボリュームに書き出される最大データ長を、
.Ar bytes
で制限します。
.Ar bytes
パラメータの末尾には
.Li m ,
.Li k ,
.Li b
のいずれかの文字を付加でき、それぞれ 1048576 (1M), 1024 (1K), 512 の倍数を
意味します。
また、
.Ar bytes
に指定する数字を
.Li x
で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。
.Pp
.Em 警告 :
最後の (もしくは最大の) 書き込み時のオフセットに基づいた EOF をサポートする
デバイス (テープや通常ファイルなどのようなもの) にアーカイブを書き出す時
にのみ本オプションを使って下さい。
本オプションをフロッピーやハードディスクデバイスファイルに対して用いる
ことは、推奨しません。
.It Fl D
本オプションは、
.Fl u
オプションと同様の動作を行いますが、ファイルの更新時間の代わりに
ファイルの inode 変更時間がチェックされるところが異なります。
ファイルの inode 変更時間は、inode 情報 (ユーザ ID、グループ ID、その他) が
コピー先のディレクトリ
.Ar directory
にあるものよりも新しいファイルを選択するのに用いられます。
.It Fl E Ar limit
部分的に破損したアーカイブの読み込みをリトライする際、その読み込み失敗回数を
.Ar limit
までに制限します。
.Ar limit
に正の数を指定した場合、
.Nm
はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて
いる次のファイルから処理を継続します。
.Ar limit
が 0 の場合、
.Nm
は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。
.Ar limit
が
.Li NONE
の場合には、読み込み失敗からの復帰を永遠に試行します。
デフォルトの
.Ar limit
の値は、小さい正の整数(リトライ回数)です。
.Pp
.Em 警告 :
.Nm
コマンドを、本オプションを
.Li NONE
指定して起動する場合には十分に気をつけて下さい。
というのも、処理対象となるアーカイブがぼろぼろに破損していた場合には、
処理が無限ループに陥る可能性があるからです。
.It Fl G Ar group
グループ名が
.Ar group
で指定したものであるファイルを選択します。
グループ名が
.Cm #
で始まる場合には、ファイルのグループ ID がそれに連なる数字のものを
選択します。'\\' を用いて
.Cm #
をエスケープすることができます。
.Fl G
オプションは、複数指定することが可能です。
この場合、最初にグループ名もしくはグループIDが一致したらところで
チェックは停止します。
.It Fl H
物理的にファイルシステムトラバースを行いながら、
コマンドラインで指定されたファイルについてのみ
シンボリックリンクをたどります。
.It Fl L
全てのシンボリックリンクファイルをたどります。
すなわち、論理的にファイルシステムトラバースを行います。
.It Fl P
シンボリックリンクをたどりません。
すなわち、物理的にファイルシステムトラバースを行います。
デフォルトはこのモードです。
.It Fl T Ar [from_date][,to_date][/[c][m]]
ファイル更新時間もしくは inode 更新時間が
.Ar from_date
から
.Ar to_date
の間 (それぞれで指定した時間も含みます) にあるファイルを選択します。
.Ar from_date
のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が
その時間と同じかそれより新しいもののみ選択されます。
.Ar to_date
のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が
その時間と同じかそれより古いもののみ選択されます。
.Ar from_date
と
.Ar to_date
が等しい場合には、ファイル更新時間もしくは inode 更新時間が
その時間と等しいものが選択されます。
.Pp
.Nm
が
.Em 書き込みモード
もしくは
.Em コピーモード
の場合には、オプションフィールドとして
.Ar [c][m]
を指定することが可能です。このフィールドは、時間の比較に inode更新時間と
ファイル更新時間のどちら(あるいは両方)を使うかを決定します。
どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。
.Ar m
は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を
比較対象として用います。
.Ar c
は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、
グループ、モードその他が更新された時間) を比較対象として用います。
.Ar c
と
.Ar m
の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象
になります。
inode 更新時間の比較は、最近属性が変更されたファイルや
最近作成されたファイル、そしてファイル更新時間が古いものに再設定された
ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから
展開されたファイルなどがこれにあたります) を選択するのに便利です。
ファイル時間も併用して時間比較をする機能は、
.Nm
を用いて、
時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された
ファイルのみアーカイブすること) を行うのに便利です。
.Pp
時間の範囲は、6 つの異なるフィールドから成り、各フィールドは 2 ケタの数字を
含む必要があります。
その形式は以下の通りです:
.Dl [yy[mm[dd[hh]]]]mm[.ss]
.Cm yy
は、年号 (西暦) の最後の 2 桁です。
最初の
.Cm mm
は、月 (01 から 12) です。
.Cm dd
は、日付 (01 から 31 まで) です
.Cm hh
は、時 (00 から 23 まで) です。
2 番めの
.Cm mm
は、分 (00 から 59 まで)です。
そして、
.Cm ss
は、秒 (00 から 59 まで)です。
分のフィールドの
.Cm mm
は、省略不可であり、他のフィールドはオプションであり、以下の順序で
付加されなければなりません:
.Dl Cm hh , dd , mm , yy
ただし、
.Cm ss
フィールドだけは、他のフィールドとは独立して付加可能です。
時間の範囲は、現在時刻からの相対値で表され、
.Dl Fl T Ar 1234/cm
は、本日の 12:34 PM から後のファイル更新時間、もしくは inode 更新時間を持つ
ファイルを選択することを表します。
複数の
.Fl T
による時間範囲指定を行うことが許可されており、
指定した範囲のうちいずれかと一致したら、その後の範囲チェックは行いません。
.It Fl U Ar user
ファイルの所有者名
.Ar user
に基づいて、ファイル選択が行われます。所有者名が
.Cm #
で始まる場合には、ファイルの UID がそれに連なる数字のものを
選択します。'\\' を用いて
.Cm #
をエスケープすることができます。
複数の
.Fl U
オプションを指定することが許されており、その指定の中で最初にユーザが
一致した場合には、それ以降のユーザ名のチェックは行いません。
.It Fl X
パス名で指定されたファイル階層をトラバースする場合に、異なるデバイス ID を
持つディレクトリへは下りていきません。
デバイス ID について詳細な情報を取得したい場合には、
.Xr stat 2
の
.Li st_dev 
フィールドを参照して下さい。
.It Fl Y
本オプションは、
.Fl D
オプションと動作が似ていますが、全てのファイル名更新が終了した後、
生成されたパス名を用いて inode 更新時間をチェックするところが異なります。
.It Fl Z
本オプションは、
.Fl u
オプションと動作が似ていますが、全てのファイル名更新が終了した後、
生成されたパス名を用いて、ファイル更新時間をチェックするところが異なります。
.El
.Pp
ファイルもしくはアーカイブ内に格納されたファイルについての操作を制御する
オプション (
.Fl c ,
.Fl i ,
.Fl n ,
.Fl s ,
.Fl u ,
.Fl v ,
.Fl D ,
.Fl G ,
.Fl T ,
.Fl U ,
.Fl Y ,
.Fl Z )
は、相互に以下のような影響を及ぼします。
.Pp
.Em 読み込み
処理におけるファイル展開時には、
展開されるファイルは、まず、アーカイブ内に格納されるファイルのうち
.Fl c ,
.Fl n ,
.Fl u ,
.Fl D ,
.Fl G ,
.Fl T ,
.Fl U
のそれぞれのオプションを用いて指定されるユーザ指定のパターンオペランド
に基づいて選択されます。
それらのファイルの中から
.Fl s
および
.Fl i
オプションがこの順に、選択されたファイル名を修正します。
それから、最終的なファイル名にて
.Fl Y
および
.Fl Z
オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が
決まります。
そして最後に、
.Fl v
オプションは、これまでの処理結果として得られた名前をファイル名として
書き出します。
.Pp
.Em 書き込み
操作や
.Em コピー
操作のファイルアーカイブでは、以下のオプション
.Fl n ,
.Fl u ,
.Fl D ,
.Fl G ,
.Fl T ,
.Fl U
(
.Fl D
オプションはコピー操作時のみ適用されます) によって
アーカイブメンバのファイルを選択します。
続いて、それらのファイルの中から
.Fl s
および
.Fl i
オプションがこの順に、選択されたファイル名を修正します。
それから
.Em コピー
処理においては、最終的なファイル名にて
.Fl Y
および
.Fl Z
オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が
決まります。
そして最後に、
.Fl v
オプションは、これまでの処理結果として得られた名前をファイル名として
書き出します。
.Pp
.Fl n
といっしょに
.Fl u
オプションあるいは
.Fl D
オプションのどちらか、もしくは両方が指定された場合、そのファイルが
比較対象のファイルより新しくなければ、そのファイルは選択されたとは
みなされません。
.Sh 使用例
コマンド:
.Dl pax -w -f /dev/rst0 .\ 
は、カレントディレクトリの内容を
.Pa /dev/rst0
にコピーします。
.Pp
コマンド:
.Dl pax -v -f filename
は、
.Pa filename
で指定したアーカイブに格納されているファイル内容の詳細な一覧を表示します。
.Pp
以下のコマンド:
.Dl mkdir /tmp/foo
.Dl cd /tmp/bar
.Dl pax -rw .\ /tmp/foo
を実行すると、
.Pa /tmp/bar
配下のディレクトリ階層全体を
.Pa /tmp/foo
にコピーします。
.Pp
コマンド:
.Dl pax -r -s ',^//*usr//*,,' -f a.pax
は、アーカイブファイル
.Pa a.pax
からデータを読み込み、アーカイブ中の ``/usr'' 配下のファイルを全て、
カレントディレクトリからの相対ディレクトリに展開します。
.Pp
コマンド:
.Dl pax -rw -i .\ dest_dir
は、カレントディレクトリから
.Pa dest_dir
ディレクトリにコピーしますが、ファイルをコピーするかどうかを
対話的に選択します。
.Pp
コマンド:
.Dl pax -r -pe -U root -G bin -f a.pax
は、
.Pa a.pax
中に格納されているファイルのうち、所有者が
.Em root
でグループが
.Em bin
であるファイルを選択し、すべてのファイル属性を保存して展開します。
.Pp
コマンド:
.Dl pax -r -w -v -Y -Z home /backup
は、コピー先ディレクトリ
.Pa /backup
にあるファイルのうち、コピー元ディレクトリ
.Pa home
に存在する同名のファイルより (inode 更新時刻もしくは
ファイル更新時刻が) 古いものについて更新を行い、一覧表示します。
.Sh 規格
.Nm
ユーティリティは、
.St -p1003.2
標準のスーパセットです。
オプション
.Fl B ,
.Fl D ,
.Fl E ,
.Fl G ,
.Fl H ,
.Fl L ,
.Fl P ,
.Fl T ,
.Fl U ,
.Fl Y ,
.Fl Z
、アーカイブ形式
.Ar bcpio ,
.Ar sv4cpio ,
.Ar sv4crc ,
.Ar tar
、および
.Ar 一覧表示
モードと
.Ar 読み込み
モードにおける破損したアーカイブの取り扱いは、
.Tn POSIX
標準に対する拡張です。
.Sh 作者
.An Keith Muller
at the University of California, San Diego
.Sh エラー
.Nm
は、以下の値のいずれかで終了します:
.Bl -tag -width 2n
.It 0
すべてのファイルは正常に処理されました。
.It 1 
エラーが発生しました。
.El
.Pp
アーカイブ読み込み中に
.Nm
がファイルを作成できない場合やリンクを張れない場合、
アーカイブに書き込み中にファイルが見つからない場合、
.Fl p
オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、
診断メッセージが
.Dv 標準エラー出力に
書き出され、0 以外の終了ステータスが返却されますが、
処理自体は継続して行われます。
ファイルへのリンクを作成できない場合には、
.Nm
はファイルの二次コピーを作成しません。
.Pp
アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により
途中で異常終了した場合、
.Nm
はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。
更に、展開したファイルやディレクトリの属性が不正であったり、
アクセス時間、更新時間も不正である可能性があります。
.Pp
アーカイブの生成が、シグナル受信もしくはエラー発生により
途中で異常終了した場合、
.Nm
は中途半端なアーカイブを生成している可能性があります。
このようなアーカイブは
特定のアーカイブフォーマット規定を満足していない可能性があります。
.Pp
.Em コピー
を行っている最中に、
.Nm
が読み出したのと同じファイルへの書き込みを検出した場合、
そのファイルはコピーされず、診断メッセージが
.Dv 標準エラー出力
へ書き出され、
.Nm
は 0 以外の終了ステータスでプログラム終了します。