xref: /freebsd/contrib/libarchive/tar/bsdtar.1 (revision 642870485c089b57000fe538d3485e272b038d59)
1caf54c4fSMartin Matuska.\" Copyright (c) 2003-2007 Tim Kientzle
2*64287048SMartin Matuska.\" Copyright (c) 2017 Martin Matuska
3caf54c4fSMartin Matuska.\" All rights reserved.
4caf54c4fSMartin Matuska.\"
5caf54c4fSMartin Matuska.\" Redistribution and use in source and binary forms, with or without
6caf54c4fSMartin Matuska.\" modification, are permitted provided that the following conditions
7caf54c4fSMartin Matuska.\" are met:
8caf54c4fSMartin Matuska.\" 1. Redistributions of source code must retain the above copyright
9caf54c4fSMartin Matuska.\"    notice, this list of conditions and the following disclaimer.
10caf54c4fSMartin Matuska.\" 2. Redistributions in binary form must reproduce the above copyright
11caf54c4fSMartin Matuska.\"    notice, this list of conditions and the following disclaimer in the
12caf54c4fSMartin Matuska.\"    documentation and/or other materials provided with the distribution.
13caf54c4fSMartin Matuska.\"
14caf54c4fSMartin Matuska.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15caf54c4fSMartin Matuska.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16caf54c4fSMartin Matuska.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17caf54c4fSMartin Matuska.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18caf54c4fSMartin Matuska.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19caf54c4fSMartin Matuska.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20caf54c4fSMartin Matuska.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21caf54c4fSMartin Matuska.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22caf54c4fSMartin Matuska.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23caf54c4fSMartin Matuska.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24caf54c4fSMartin Matuska.\" SUCH DAMAGE.
25caf54c4fSMartin Matuska.\"
266c22d9efSMartin Matuska.\" $FreeBSD$
27caf54c4fSMartin Matuska.\"
28*64287048SMartin Matuska.Dd February 25, 2017
296c95142eSMartin Matuska.Dt TAR 1
30caf54c4fSMartin Matuska.Os
31caf54c4fSMartin Matuska.Sh NAME
32caf54c4fSMartin Matuska.Nm tar
33caf54c4fSMartin Matuska.Nd manipulate tape archives
34caf54c4fSMartin Matuska.Sh SYNOPSIS
35caf54c4fSMartin Matuska.Nm
36caf54c4fSMartin Matuska.Op Ar bundled-flags Ao args Ac
37caf54c4fSMartin Matuska.Op Ao Ar file Ac | Ao Ar pattern Ac ...
38caf54c4fSMartin Matuska.Nm
39caf54c4fSMartin Matuska.Brq Fl c
40caf54c4fSMartin Matuska.Op Ar options
41caf54c4fSMartin Matuska.Op Ar files | Ar directories
42caf54c4fSMartin Matuska.Nm
43caf54c4fSMartin Matuska.Brq Fl r | Fl u
44caf54c4fSMartin Matuska.Fl f Ar archive-file
45caf54c4fSMartin Matuska.Op Ar options
46caf54c4fSMartin Matuska.Op Ar files | Ar directories
47caf54c4fSMartin Matuska.Nm
48caf54c4fSMartin Matuska.Brq Fl t | Fl x
49caf54c4fSMartin Matuska.Op Ar options
50caf54c4fSMartin Matuska.Op Ar patterns
51caf54c4fSMartin Matuska.Sh DESCRIPTION
52caf54c4fSMartin Matuska.Nm
53caf54c4fSMartin Matuskacreates and manipulates streaming archive files.
54c5d360f8SMartin MatuskaThis implementation can extract from tar, pax, cpio, zip, jar, ar, xar,
556c95142eSMartin Matuskarpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip,
566c95142eSMartin Matuska7-zip, and shar archives.
57caf54c4fSMartin Matuska.Pp
58caf54c4fSMartin MatuskaThe first synopsis form shows a
59caf54c4fSMartin Matuska.Dq bundled
60caf54c4fSMartin Matuskaoption word.
61caf54c4fSMartin MatuskaThis usage is provided for compatibility with historical implementations.
62caf54c4fSMartin MatuskaSee COMPATIBILITY below for details.
63caf54c4fSMartin Matuska.Pp
64caf54c4fSMartin MatuskaThe other synopsis forms show the preferred usage.
65caf54c4fSMartin MatuskaThe first option to
66caf54c4fSMartin Matuska.Nm
67caf54c4fSMartin Matuskais a mode indicator from the following list:
68caf54c4fSMartin Matuska.Bl -tag -compact -width indent
69caf54c4fSMartin Matuska.It Fl c
70caf54c4fSMartin MatuskaCreate a new archive containing the specified items.
71c5d360f8SMartin MatuskaThe long option form is
72c5d360f8SMartin Matuska.Fl Fl create .
73caf54c4fSMartin Matuska.It Fl r
74caf54c4fSMartin MatuskaLike
75caf54c4fSMartin Matuska.Fl c ,
76caf54c4fSMartin Matuskabut new entries are appended to the archive.
77caf54c4fSMartin MatuskaNote that this only works on uncompressed archives stored in regular files.
78caf54c4fSMartin MatuskaThe
79caf54c4fSMartin Matuska.Fl f
80caf54c4fSMartin Matuskaoption is required.
81c5d360f8SMartin MatuskaThe long option form is
82c5d360f8SMartin Matuska.Fl Fl append .
83caf54c4fSMartin Matuska.It Fl t
84caf54c4fSMartin MatuskaList archive contents to stdout.
85c5d360f8SMartin MatuskaThe long option form is
86c5d360f8SMartin Matuska.Fl Fl list .
87caf54c4fSMartin Matuska.It Fl u
88caf54c4fSMartin MatuskaLike
89caf54c4fSMartin Matuska.Fl r ,
90caf54c4fSMartin Matuskabut new entries are added only if they have a modification date
91caf54c4fSMartin Matuskanewer than the corresponding entry in the archive.
92caf54c4fSMartin MatuskaNote that this only works on uncompressed archives stored in regular files.
93caf54c4fSMartin MatuskaThe
94caf54c4fSMartin Matuska.Fl f
95caf54c4fSMartin Matuskaoption is required.
96c5d360f8SMartin MatuskaThe long form is
97c5d360f8SMartin Matuska.Fl Fl update .
98caf54c4fSMartin Matuska.It Fl x
99caf54c4fSMartin MatuskaExtract to disk from the archive.
100caf54c4fSMartin MatuskaIf a file with the same name appears more than once in the archive,
101caf54c4fSMartin Matuskaeach copy will be extracted, with later copies overwriting (replacing)
102caf54c4fSMartin Matuskaearlier copies.
103c5d360f8SMartin MatuskaThe long option form is
104c5d360f8SMartin Matuska.Fl Fl extract .
105caf54c4fSMartin Matuska.El
106caf54c4fSMartin Matuska.Pp
107caf54c4fSMartin MatuskaIn
108caf54c4fSMartin Matuska.Fl c ,
109caf54c4fSMartin Matuska.Fl r ,
110caf54c4fSMartin Matuskaor
111caf54c4fSMartin Matuska.Fl u
112caf54c4fSMartin Matuskamode, each specified file or directory is added to the
113caf54c4fSMartin Matuskaarchive in the order specified on the command line.
114caf54c4fSMartin MatuskaBy default, the contents of each directory are also archived.
115caf54c4fSMartin Matuska.Pp
116caf54c4fSMartin MatuskaIn extract or list mode, the entire command line
117caf54c4fSMartin Matuskais read and parsed before the archive is opened.
118caf54c4fSMartin MatuskaThe pathnames or patterns on the command line indicate
119caf54c4fSMartin Matuskawhich items in the archive should be processed.
120caf54c4fSMartin MatuskaPatterns are shell-style globbing patterns as
121caf54c4fSMartin Matuskadocumented in
122caf54c4fSMartin Matuska.Xr tcsh 1 .
123caf54c4fSMartin Matuska.Sh OPTIONS
124caf54c4fSMartin MatuskaUnless specifically stated otherwise, options are applicable in
125caf54c4fSMartin Matuskaall operating modes.
126caf54c4fSMartin Matuska.Bl -tag -width indent
127caf54c4fSMartin Matuska.It Cm @ Ns Pa archive
128*64287048SMartin Matuska(c and r modes only)
129caf54c4fSMartin MatuskaThe specified archive is opened and the entries
130caf54c4fSMartin Matuskain it will be appended to the current archive.
131caf54c4fSMartin MatuskaAs a simple example,
132caf54c4fSMartin Matuska.Dl Nm Fl c Fl f Pa - Pa newfile Cm @ Ns Pa original.tar
133caf54c4fSMartin Matuskawrites a new archive to standard output containing a file
134caf54c4fSMartin Matuska.Pa newfile
135caf54c4fSMartin Matuskaand all of the entries from
136caf54c4fSMartin Matuska.Pa original.tar .
137caf54c4fSMartin MatuskaIn contrast,
138caf54c4fSMartin Matuska.Dl Nm Fl c Fl f Pa - Pa newfile Pa original.tar
139caf54c4fSMartin Matuskacreates a new archive with only two entries.
140caf54c4fSMartin MatuskaSimilarly,
141c5d360f8SMartin Matuska.Dl Nm Fl czf Pa - Fl Fl format Cm pax Cm @ Ns Pa -
142caf54c4fSMartin Matuskareads an archive from standard input (whose format will be determined
143caf54c4fSMartin Matuskaautomatically) and converts it into a gzip-compressed
144caf54c4fSMartin Matuskapax-format archive on stdout.
145caf54c4fSMartin MatuskaIn this way,
146caf54c4fSMartin Matuska.Nm
147caf54c4fSMartin Matuskacan be used to convert archives from one format to another.
148acc60b03SMartin Matuska.It Fl a , Fl Fl auto-compress
149acc60b03SMartin Matuska(c mode only)
150acc60b03SMartin MatuskaUse the archive suffix to decide a set of the format and
151acc60b03SMartin Matuskathe compressions.
152acc60b03SMartin MatuskaAs a simple example,
153acc60b03SMartin Matuska.Dl Nm Fl a Fl cf Pa archive.tgz source.c source.h
154acc60b03SMartin Matuskacreates a new archive with restricted pax format and gzip compression,
155acc60b03SMartin Matuska.Dl Nm Fl a Fl cf Pa archive.tar.bz2.uu source.c source.h
156acc60b03SMartin Matuskacreates a new archive with restricted pax format and bzip2 compression
157acc60b03SMartin Matuskaand uuencode compression,
158acc60b03SMartin Matuska.Dl Nm Fl a Fl cf Pa archive.zip source.c source.h
159acc60b03SMartin Matuskacreates a new archive with zip format,
160acc60b03SMartin Matuska.Dl Nm Fl a Fl jcf Pa archive.tgz source.c source.h
161acc60b03SMartin Matuskaignores the
162acc60b03SMartin Matuska.Dq -j
163acc60b03SMartin Matuskaoption, and creates a new archive with restricted pax format
164acc60b03SMartin Matuskaand gzip compression,
165acc60b03SMartin Matuska.Dl Nm Fl a Fl jcf Pa archive.xxx source.c source.h
166acc60b03SMartin Matuskaif it is unknown suffix or no suffix, creates a new archive with
167acc60b03SMartin Matuskarestricted pax format and bzip2 compression.
168*64287048SMartin Matuska.It Fl Fl acls
169*64287048SMartin Matuska(c, r, u, x modes only)
170*64287048SMartin MatuskaArchive or extract POSIX.1e or NFSv4 ACLs. This is the reverse of
171*64287048SMartin Matuska.Fl Fl no-acls
172*64287048SMartin Matuskaand the default behavior in c, r, and u modes (except Mac OS X) or if
173*64287048SMartin Matuska.Nm
174*64287048SMartin Matuskais run in x mode as root. On Mac OS X this option translates extended ACLs
175*64287048SMartin Matuskato NFSv4 ACLs. To store extended ACLs the
176*64287048SMartin Matuska.Fl Fl mac-metadata
177*64287048SMartin Matuskaoption is preferred.
178c5d360f8SMartin Matuska.It Fl B , Fl Fl read-full-blocks
179c5d360f8SMartin MatuskaIgnored for compatibility with other
180c5d360f8SMartin Matuska.Xr tar 1
181c5d360f8SMartin Matuskaimplementations.
182c5d360f8SMartin Matuska.It Fl b Ar blocksize , Fl Fl block-size Ar blocksize
183caf54c4fSMartin MatuskaSpecify the block size, in 512-byte records, for tape drive I/O.
184caf54c4fSMartin MatuskaAs a rule, this argument is only needed when reading from or writing
185caf54c4fSMartin Matuskato tape drives, and usually not even then as the default block size of
186caf54c4fSMartin Matuska20 records (10240 bytes) is very common.
1876c95142eSMartin Matuska.It Fl C Ar directory , Fl Fl cd Ar directory , Fl Fl directory Ar directory
188caf54c4fSMartin MatuskaIn c and r mode, this changes the directory before adding
189caf54c4fSMartin Matuskathe following files.
190caf54c4fSMartin MatuskaIn x mode, change directories after opening the archive
191caf54c4fSMartin Matuskabut before extracting entries from the archive.
192c5d360f8SMartin Matuska.It Fl Fl chroot
193caf54c4fSMartin Matuska(x mode only)
194caf54c4fSMartin Matuska.Fn chroot
195caf54c4fSMartin Matuskato the current directory after processing any
196caf54c4fSMartin Matuska.Fl C
197caf54c4fSMartin Matuskaoptions and before extracting any files.
198cdf63a70SMartin Matuska.It Fl Fl clear-nochange-fflags
199cdf63a70SMartin Matuska(x mode only)
200cdf63a70SMartin MatuskaBefore removing file system objects to replace them, clear platform-specific
201cdf63a70SMartin Matuskafile flags that might prevent removal.
202c5d360f8SMartin Matuska.It Fl Fl exclude Ar pattern
203caf54c4fSMartin MatuskaDo not process files or directories that match the
204caf54c4fSMartin Matuskaspecified pattern.
205caf54c4fSMartin MatuskaNote that exclusions take precedence over patterns or filenames
206caf54c4fSMartin Matuskaspecified on the command line.
207*64287048SMartin Matuska.It Fl Fl fflags
208*64287048SMartin Matuska(c, r, u, x modes only)
209*64287048SMartin MatuskaArchive or extract file flags. This is the reverse of
210*64287048SMartin Matuska.Fl Fl no-fflags
211*64287048SMartin Matuskaand the default behavior in c, r, and u modes or if
212*64287048SMartin Matuska.Nm
213*64287048SMartin Matuskais run in x mode as root.
214c5d360f8SMartin Matuska.It Fl Fl format Ar format
215caf54c4fSMartin Matuska(c, r, u mode only)
216caf54c4fSMartin MatuskaUse the specified format for the created archive.
217caf54c4fSMartin MatuskaSupported formats include
218caf54c4fSMartin Matuska.Dq cpio ,
219caf54c4fSMartin Matuska.Dq pax ,
220caf54c4fSMartin Matuska.Dq shar ,
221caf54c4fSMartin Matuskaand
222caf54c4fSMartin Matuska.Dq ustar .
223caf54c4fSMartin MatuskaOther formats may also be supported; see
224caf54c4fSMartin Matuska.Xr libarchive-formats 5
225caf54c4fSMartin Matuskafor more information about currently-supported formats.
226caf54c4fSMartin MatuskaIn r and u modes, when extending an existing archive, the format specified
227caf54c4fSMartin Matuskahere must be compatible with the format of the existing archive on disk.
228c5d360f8SMartin Matuska.It Fl f Ar file , Fl Fl file Ar file
229caf54c4fSMartin MatuskaRead the archive from or write the archive to the specified file.
230caf54c4fSMartin MatuskaThe filename can be
231caf54c4fSMartin Matuska.Pa -
232caf54c4fSMartin Matuskafor standard input or standard output.
233c5d360f8SMartin MatuskaThe default varies by system;
234c5d360f8SMartin Matuskaon
235caf54c4fSMartin Matuska.Fx ,
236c5d360f8SMartin Matuskathe default is
237c5d360f8SMartin Matuska.Pa /dev/sa0 ;
238c5d360f8SMartin Matuskaon Linux, the default is
239c5d360f8SMartin Matuska.Pa /dev/st0 .
240caf54c4fSMartin Matuska.It Fl Fl gid Ar id
241caf54c4fSMartin MatuskaUse the provided group id number.
242caf54c4fSMartin MatuskaOn extract, this overrides the group id in the archive;
243caf54c4fSMartin Matuskathe group name in the archive will be ignored.
244caf54c4fSMartin MatuskaOn create, this overrides the group id read from disk;
245caf54c4fSMartin Matuskaif
246caf54c4fSMartin Matuska.Fl Fl gname
247caf54c4fSMartin Matuskais not also specified, the group name will be set to
248caf54c4fSMartin Matuskamatch the group id.
249caf54c4fSMartin Matuska.It Fl Fl gname Ar name
250caf54c4fSMartin MatuskaUse the provided group name.
251caf54c4fSMartin MatuskaOn extract, this overrides the group name in the archive;
252caf54c4fSMartin Matuskaif the provided group name does not exist on the system,
253caf54c4fSMartin Matuskathe group id
254caf54c4fSMartin Matuska(from the archive or from the
255caf54c4fSMartin Matuska.Fl Fl gid
256caf54c4fSMartin Matuskaoption)
257caf54c4fSMartin Matuskawill be used instead.
258caf54c4fSMartin MatuskaOn create, this sets the group name that will be stored
259caf54c4fSMartin Matuskain the archive;
260caf54c4fSMartin Matuskathe name will not be verified against the system group database.
261caf54c4fSMartin Matuska.It Fl H
262*64287048SMartin Matuska(c and r modes only)
263caf54c4fSMartin MatuskaSymbolic links named on the command line will be followed; the
264caf54c4fSMartin Matuskatarget of the link will be archived, not the link itself.
265caf54c4fSMartin Matuska.It Fl h
266*64287048SMartin Matuska(c and r modes only)
267caf54c4fSMartin MatuskaSynonym for
268caf54c4fSMartin Matuska.Fl L .
269caf54c4fSMartin Matuska.It Fl I
270caf54c4fSMartin MatuskaSynonym for
271caf54c4fSMartin Matuska.Fl T .
272c5d360f8SMartin Matuska.It Fl Fl help
273c5d360f8SMartin MatuskaShow usage.
274acc60b03SMartin Matuska.It Fl Fl hfsCompression
275acc60b03SMartin Matuska(x mode only)
276*64287048SMartin MatuskaMac OS X specific (v10.6 or later). Compress extracted regular files with HFS+
277*64287048SMartin Matuskacompression.
278cdf63a70SMartin Matuska.It Fl Fl ignore-zeros
279cdf63a70SMartin MatuskaAn alias of
280cdf63a70SMartin Matuska.Fl Fl options Cm read_concatenated_archives
281cdf63a70SMartin Matuskafor compatibility with GNU tar.
282c5d360f8SMartin Matuska.It Fl Fl include Ar pattern
283caf54c4fSMartin MatuskaProcess only files or directories that match the specified pattern.
284caf54c4fSMartin MatuskaNote that exclusions specified with
285c5d360f8SMartin Matuska.Fl Fl exclude
286caf54c4fSMartin Matuskatake precedence over inclusions.
287caf54c4fSMartin MatuskaIf no inclusions are explicitly specified, all entries are processed by
288caf54c4fSMartin Matuskadefault.
289caf54c4fSMartin MatuskaThe
290c5d360f8SMartin Matuska.Fl Fl include
291caf54c4fSMartin Matuskaoption is especially useful when filtering archives.
292caf54c4fSMartin MatuskaFor example, the command
293c5d360f8SMartin Matuska.Dl Nm Fl c Fl f Pa new.tar Fl Fl include='*foo*' Cm @ Ns Pa old.tgz
294caf54c4fSMartin Matuskacreates a new archive
295caf54c4fSMartin Matuska.Pa new.tar
296caf54c4fSMartin Matuskacontaining only the entries from
297caf54c4fSMartin Matuska.Pa old.tgz
298caf54c4fSMartin Matuskacontaining the string
299caf54c4fSMartin Matuska.Sq foo .
300c5d360f8SMartin Matuska.It Fl J , Fl Fl xz
301c5d360f8SMartin Matuska(c mode only)
302c5d360f8SMartin MatuskaCompress the resulting archive with
303c5d360f8SMartin Matuska.Xr xz 1 .
304c5d360f8SMartin MatuskaIn extract or list modes, this option is ignored.
305c5d360f8SMartin MatuskaNote that, unlike other
306c5d360f8SMartin Matuska.Nm tar
307c5d360f8SMartin Matuskaimplementations, this implementation recognizes XZ compression
308c5d360f8SMartin Matuskaautomatically when reading archives.
309c5d360f8SMartin Matuska.It Fl j , Fl Fl bzip , Fl Fl bzip2 , Fl Fl bunzip2
310caf54c4fSMartin Matuska(c mode only)
311caf54c4fSMartin MatuskaCompress the resulting archive with
312caf54c4fSMartin Matuska.Xr bzip2 1 .
313caf54c4fSMartin MatuskaIn extract or list modes, this option is ignored.
314caf54c4fSMartin MatuskaNote that, unlike other
315caf54c4fSMartin Matuska.Nm tar
316caf54c4fSMartin Matuskaimplementations, this implementation recognizes bzip2 compression
317caf54c4fSMartin Matuskaautomatically when reading archives.
318c5d360f8SMartin Matuska.It Fl k , Fl Fl keep-old-files
319caf54c4fSMartin Matuska(x mode only)
320caf54c4fSMartin MatuskaDo not overwrite existing files.
321caf54c4fSMartin MatuskaIn particular, if a file appears more than once in an archive,
322caf54c4fSMartin Matuskalater copies will not overwrite earlier copies.
323c5d360f8SMartin Matuska.It Fl Fl keep-newer-files
324caf54c4fSMartin Matuska(x mode only)
325caf54c4fSMartin MatuskaDo not overwrite existing files that are newer than the
326caf54c4fSMartin Matuskaversions appearing in the archive being extracted.
327c5d360f8SMartin Matuska.It Fl L , Fl Fl dereference
328*64287048SMartin Matuska(c and r modes only)
329caf54c4fSMartin MatuskaAll symbolic links will be followed.
330caf54c4fSMartin MatuskaNormally, symbolic links are archived as such.
331caf54c4fSMartin MatuskaWith this option, the target of the link will be archived instead.
332c5d360f8SMartin Matuska.It Fl l , Fl Fl check-links
333c5d360f8SMartin Matuska(c and r modes only)
334c5d360f8SMartin MatuskaIssue a warning message unless all links to each file are archived.
335acc60b03SMartin Matuska.It Fl Fl lrzip
336acc60b03SMartin Matuska(c mode only)
337acc60b03SMartin MatuskaCompress the resulting archive with
338acc60b03SMartin Matuska.Xr lrzip 1 .
339acc60b03SMartin MatuskaIn extract or list modes, this option is ignored.
340cdf63a70SMartin Matuska.It Fl Fl lz4
341cdf63a70SMartin Matuska(c mode only)
342cdf63a70SMartin MatuskaCompress the archive with lz4-compatible compression before writing it.
343cdf63a70SMartin MatuskaIn input mode, this option is ignored; lz4 compression is recognized
344cdf63a70SMartin Matuskaautomatically on input.
345c5d360f8SMartin Matuska.It Fl Fl lzma
346c5d360f8SMartin Matuska(c mode only) Compress the resulting archive with the original LZMA algorithm.
347c5d360f8SMartin MatuskaUse of this option is discouraged and new archives should be created with
348c5d360f8SMartin Matuska.Fl Fl xz
349c5d360f8SMartin Matuskainstead.
350c5d360f8SMartin MatuskaNote that, unlike other
351c5d360f8SMartin Matuska.Nm tar
352c5d360f8SMartin Matuskaimplementations, this implementation recognizes LZMA compression
353c5d360f8SMartin Matuskaautomatically when reading archives.
354acc60b03SMartin Matuska.It Fl Fl lzop
355acc60b03SMartin Matuska(c mode only)
356acc60b03SMartin MatuskaCompress the resulting archive with
357acc60b03SMartin Matuska.Xr lzop 1 .
358acc60b03SMartin MatuskaIn extract or list modes, this option is ignored.
359c5d360f8SMartin Matuska.It Fl m , Fl Fl modification-time
360caf54c4fSMartin Matuska(x mode only)
361caf54c4fSMartin MatuskaDo not extract modification time.
362caf54c4fSMartin MatuskaBy default, the modification time is set to the time stored in the archive.
363*64287048SMartin Matuska.It Fl Fl mac-metadata
364*64287048SMartin Matuska(c, r, u and x mode only)
365*64287048SMartin MatuskaMac OS X specific. Archive or extract extended ACLs and extended attributes
366*64287048SMartin Matuskausing
367*64287048SMartin Matuska.Xr copyfile 3
368*64287048SMartin Matuskain AppleDouble format. This is the reverse of
369*64287048SMartin Matuska.Fl Fl no-mac-metadata .
370*64287048SMartin Matuskaand the default behavior in c, r, and u modes or if
371*64287048SMartin Matuska.Nm
372*64287048SMartin Matuskais run in x mode as root.
373c5d360f8SMartin Matuska.It Fl n , Fl Fl norecurse , Fl Fl no-recursion
374caf54c4fSMartin Matuska(c, r, u modes only)
375caf54c4fSMartin MatuskaDo not recursively archive the contents of directories.
376c5d360f8SMartin Matuska.It Fl Fl newer Ar date
377caf54c4fSMartin Matuska(c, r, u modes only)
378caf54c4fSMartin MatuskaOnly include files and directories newer than the specified date.
379caf54c4fSMartin MatuskaThis compares ctime entries.
380c5d360f8SMartin Matuska.It Fl Fl newer-mtime Ar date
381caf54c4fSMartin Matuska(c, r, u modes only)
382caf54c4fSMartin MatuskaLike
383c5d360f8SMartin Matuska.Fl Fl newer ,
384caf54c4fSMartin Matuskaexcept it compares mtime entries instead of ctime entries.
385c5d360f8SMartin Matuska.It Fl Fl newer-than Pa file
386caf54c4fSMartin Matuska(c, r, u modes only)
387caf54c4fSMartin MatuskaOnly include files and directories newer than the specified file.
388caf54c4fSMartin MatuskaThis compares ctime entries.
389c5d360f8SMartin Matuska.It Fl Fl newer-mtime-than Pa file
390caf54c4fSMartin Matuska(c, r, u modes only)
391caf54c4fSMartin MatuskaLike
392c5d360f8SMartin Matuska.Fl Fl newer-than ,
393caf54c4fSMartin Matuskaexcept it compares mtime entries instead of ctime entries.
394c5d360f8SMartin Matuska.It Fl Fl nodump
395caf54c4fSMartin Matuska(c and r modes only)
396caf54c4fSMartin MatuskaHonor the nodump file flag by skipping this file.
397acc60b03SMartin Matuska.It Fl Fl nopreserveHFSCompression
398acc60b03SMartin Matuska(x mode only)
399acc60b03SMartin MatuskaMac OS X specific(v10.6 or later). Do not compress extracted regular files
400acc60b03SMartin Matuskawhich were compressed with HFS+ compression before archived.
401acc60b03SMartin MatuskaBy default, compress the regular files again with HFS+ compression.
402c5d360f8SMartin Matuska.It Fl Fl null
403caf54c4fSMartin Matuska(use with
404c5d360f8SMartin Matuska.Fl I
405caf54c4fSMartin Matuskaor
406c5d360f8SMartin Matuska.Fl T )
407caf54c4fSMartin MatuskaFilenames or patterns are separated by null characters,
408caf54c4fSMartin Matuskanot by newlines.
409caf54c4fSMartin MatuskaThis is often used to read filenames output by the
410caf54c4fSMartin Matuska.Fl print0
411caf54c4fSMartin Matuskaoption to
412caf54c4fSMartin Matuska.Xr find 1 .
413*64287048SMartin Matuska.It Fl Fl no-acls
414*64287048SMartin Matuska(c, r, u, x modes only)
415*64287048SMartin MatuskaDo not archive or extract POSIX.1e or NFSv4 ACLs. This is the reverse of
416*64287048SMartin Matuska.Fl Fl acls
417*64287048SMartin Matuskaand the default behavior if
418*64287048SMartin Matuska.Nm
419*64287048SMartin Matuskais run as non-root in x mode (on Mac OS X also in c, r and u modes).
420*64287048SMartin Matuska.It Fl Fl no-fflags
421*64287048SMartin Matuska(c, r, u, x modes only)
422*64287048SMartin MatuskaDo not archive or extract file flags. This is the reverse of
423*64287048SMartin Matuska.Fl Fl fflags
424*64287048SMartin Matuskaand the default behavior if
425*64287048SMartin Matuska.Nm
426*64287048SMartin Matuskais run as non-root in x mode.
427*64287048SMartin Matuska.It Fl Fl no-mac-metadata
428*64287048SMartin Matuska(x mode only)
429*64287048SMartin MatuskaMac OS X specific. Do not archive or extract ACLs and extended attributes using
430*64287048SMartin Matuska.Xr copyfile 3
431*64287048SMartin Matuskain AppleDouble format. This is the reverse of
432*64287048SMartin Matuska.Fl Fl mac-metadata .
433*64287048SMartin Matuskaand the default behavior if
434*64287048SMartin Matuska.Nm
435*64287048SMartin Matuskais run as non-root in x mode.
436*64287048SMartin Matuska.It Fl n , Fl Fl norecurse , Fl Fl no-recursion
437caf54c4fSMartin Matuska.It Fl Fl no-same-owner
438caf54c4fSMartin Matuska(x mode only)
439caf54c4fSMartin MatuskaDo not extract owner and group IDs.
440caf54c4fSMartin MatuskaThis is the reverse of
441caf54c4fSMartin Matuska.Fl Fl same-owner
442caf54c4fSMartin Matuskaand the default behavior if
443caf54c4fSMartin Matuska.Nm
444caf54c4fSMartin Matuskais run as non-root.
445caf54c4fSMartin Matuska.It Fl Fl no-same-permissions
446caf54c4fSMartin Matuska(x mode only)
447caf54c4fSMartin MatuskaDo not extract full permissions (SGID, SUID, sticky bit, ACLs,
448caf54c4fSMartin Matuskaextended attributes or extended file flags).
449caf54c4fSMartin MatuskaThis is the reverse of
450caf54c4fSMartin Matuska.Fl p
451caf54c4fSMartin Matuskaand the default behavior if
452caf54c4fSMartin Matuska.Nm
453caf54c4fSMartin Matuskais run as non-root.
454*64287048SMartin Matuska.It Fl Fl no-xattrs
455*64287048SMartin Matuska(c, r, u, x modes only)
456*64287048SMartin MatuskaDo not archive or extract extended attributes. This is the reverse of
457*64287048SMartin Matuska.Fl Fl xattrs
458*64287048SMartin Matuskaand the default behavior if
459*64287048SMartin Matuska.Nm
460*64287048SMartin Matuskais run as non-root in x mode.
461caf54c4fSMartin Matuska.It Fl Fl numeric-owner
462caf54c4fSMartin MatuskaThis is equivalent to
463caf54c4fSMartin Matuska.Fl Fl uname
464caf54c4fSMartin Matuska.Qq
465caf54c4fSMartin Matuska.Fl Fl gname
466caf54c4fSMartin Matuska.Qq .
467caf54c4fSMartin MatuskaOn extract, it causes user and group names in the archive
468caf54c4fSMartin Matuskato be ignored in favor of the numeric user and group ids.
469caf54c4fSMartin MatuskaOn create, it causes user and group names to not be stored
470caf54c4fSMartin Matuskain the archive.
471c5d360f8SMartin Matuska.It Fl O , Fl Fl to-stdout
472caf54c4fSMartin Matuska(x, t modes only)
473caf54c4fSMartin MatuskaIn extract (-x) mode, files will be written to standard out rather than
474caf54c4fSMartin Matuskabeing extracted to disk.
475caf54c4fSMartin MatuskaIn list (-t) mode, the file listing will be written to stderr rather than
476caf54c4fSMartin Matuskathe usual stdout.
477caf54c4fSMartin Matuska.It Fl o
478caf54c4fSMartin Matuska(x mode)
479caf54c4fSMartin MatuskaUse the user and group of the user running the program rather
480caf54c4fSMartin Matuskathan those specified in the archive.
481caf54c4fSMartin MatuskaNote that this has no significance unless
482caf54c4fSMartin Matuska.Fl p
483caf54c4fSMartin Matuskais specified, and the program is being run by the root user.
484caf54c4fSMartin MatuskaIn this case, the file modes and flags from
485caf54c4fSMartin Matuskathe archive will be restored, but ACLs or owner information in
486caf54c4fSMartin Matuskathe archive will be discarded.
487caf54c4fSMartin Matuska.It Fl o
488caf54c4fSMartin Matuska(c, r, u mode)
489caf54c4fSMartin MatuskaA synonym for
490c5d360f8SMartin Matuska.Fl Fl format Ar ustar
491acc60b03SMartin Matuska.It Fl Fl older Ar date
492acc60b03SMartin Matuska(c, r, u modes only)
493acc60b03SMartin MatuskaOnly include files and directories older than the specified date.
494acc60b03SMartin MatuskaThis compares ctime entries.
495acc60b03SMartin Matuska.It Fl Fl older-mtime Ar date
496acc60b03SMartin Matuska(c, r, u modes only)
497acc60b03SMartin MatuskaLike
498acc60b03SMartin Matuska.Fl Fl older ,
499acc60b03SMartin Matuskaexcept it compares mtime entries instead of ctime entries.
500acc60b03SMartin Matuska.It Fl Fl older-than Pa file
501acc60b03SMartin Matuska(c, r, u modes only)
502acc60b03SMartin MatuskaOnly include files and directories older than the specified file.
503acc60b03SMartin MatuskaThis compares ctime entries.
504acc60b03SMartin Matuska.It Fl Fl older-mtime-than Pa file
505acc60b03SMartin Matuska(c, r, u modes only)
506acc60b03SMartin MatuskaLike
507acc60b03SMartin Matuska.Fl Fl older-than ,
508acc60b03SMartin Matuskaexcept it compares mtime entries instead of ctime entries.
509c5d360f8SMartin Matuska.It Fl Fl one-file-system
510caf54c4fSMartin Matuska(c, r, and u modes)
511caf54c4fSMartin MatuskaDo not cross mount points.
512c5d360f8SMartin Matuska.It Fl Fl options Ar options
513caf54c4fSMartin MatuskaSelect optional behaviors for particular modules.
514caf54c4fSMartin MatuskaThe argument is a text string containing comma-separated
515caf54c4fSMartin Matuskakeywords and values.
516caf54c4fSMartin MatuskaThese are passed to the modules that handle particular
517caf54c4fSMartin Matuskaformats to control how those formats will behave.
518caf54c4fSMartin MatuskaEach option has one of the following forms:
519caf54c4fSMartin Matuska.Bl -tag -compact -width indent
520caf54c4fSMartin Matuska.It Ar key=value
521caf54c4fSMartin MatuskaThe key will be set to the specified value in every module that supports it.
522caf54c4fSMartin MatuskaModules that do not support this key will ignore it.
523caf54c4fSMartin Matuska.It Ar key
524caf54c4fSMartin MatuskaThe key will be enabled in every module that supports it.
525caf54c4fSMartin MatuskaThis is equivalent to
526caf54c4fSMartin Matuska.Ar key Ns Cm =1 .
527caf54c4fSMartin Matuska.It Ar !key
528caf54c4fSMartin MatuskaThe key will be disabled in every module that supports it.
529caf54c4fSMartin Matuska.It Ar module:key=value , Ar module:key , Ar module:!key
530caf54c4fSMartin MatuskaAs above, but the corresponding key and value will be provided
531caf54c4fSMartin Matuskaonly to modules whose name matches
532caf54c4fSMartin Matuska.Ar module .
533caf54c4fSMartin Matuska.El
534caf54c4fSMartin MatuskaThe currently supported modules and keys are:
535caf54c4fSMartin Matuska.Bl -tag -compact -width indent
536caf54c4fSMartin Matuska.It Cm iso9660:joliet
537caf54c4fSMartin MatuskaSupport Joliet extensions.
538caf54c4fSMartin MatuskaThis is enabled by default, use
539caf54c4fSMartin Matuska.Cm !joliet
540caf54c4fSMartin Matuskaor
541caf54c4fSMartin Matuska.Cm iso9660:!joliet
542caf54c4fSMartin Matuskato disable.
543caf54c4fSMartin Matuska.It Cm iso9660:rockridge
544caf54c4fSMartin MatuskaSupport Rock Ridge extensions.
545caf54c4fSMartin MatuskaThis is enabled by default, use
546caf54c4fSMartin Matuska.Cm !rockridge
547caf54c4fSMartin Matuskaor
548caf54c4fSMartin Matuska.Cm iso9660:!rockridge
549caf54c4fSMartin Matuskato disable.
550caf54c4fSMartin Matuska.It Cm gzip:compression-level
551acc60b03SMartin MatuskaA decimal integer from 1 to 9 specifying the gzip compression level.
552acc60b03SMartin Matuska.It Cm gzip:timestamp
553acc60b03SMartin MatuskaStore timestamp. This is enabled by default, use
554acc60b03SMartin Matuska.Cm !timestamp
555acc60b03SMartin Matuskaor
556acc60b03SMartin Matuska.Cm gzip:!timestamp
557acc60b03SMartin Matuskato disable.
558acc60b03SMartin Matuska.It Cm lrzip:compression Ns = Ns Ar type
559acc60b03SMartin MatuskaUse
560acc60b03SMartin Matuska.Ar type
561acc60b03SMartin Matuskaas compression method.
562acc60b03SMartin MatuskaSupported values are bzip2, gzip, lzo (ultra fast),
563acc60b03SMartin Matuskaand zpaq (best, extremely slow).
564acc60b03SMartin Matuska.It Cm lrzip:compression-level
565acc60b03SMartin MatuskaA decimal integer from 1 to 9 specifying the lrzip compression level.
566cdf63a70SMartin Matuska.It Cm lz4:compression-level
567cdf63a70SMartin MatuskaA decimal integer from 1 to 9 specifying the lzop compression level.
568cdf63a70SMartin Matuska.It Cm lz4:stream-checksum
569cdf63a70SMartin MatuskaEnable stream checksum. This is by default, use
570cdf63a70SMartin Matuska.Cm lz4:!stream-checksum
571cdf63a70SMartin Matuskato disable.
572cdf63a70SMartin Matuska.It Cm lz4:block-checksum
573cdf63a70SMartin MatuskaEnable block checksum (Disabled by default).
574cdf63a70SMartin Matuska.It Cm lz4:block-size
575cdf63a70SMartin MatuskaA decimal integer from 4 to 7 specifying the lz4 compression block size
576cdf63a70SMartin Matuska(7 is set by default).
577cdf63a70SMartin Matuska.It Cm lz4:block-dependence
578cdf63a70SMartin MatuskaUse the previous block of the block being compressed for
579cdf63a70SMartin Matuskaa compression dictionary to improve compression ratio.
580acc60b03SMartin Matuska.It Cm lzop:compression-level
581acc60b03SMartin MatuskaA decimal integer from 1 to 9 specifying the lzop compression level.
582caf54c4fSMartin Matuska.It Cm xz:compression-level
583caf54c4fSMartin MatuskaA decimal integer from 0 to 9 specifying the xz compression level.
584caf54c4fSMartin Matuska.It Cm mtree: Ns Ar keyword
585caf54c4fSMartin MatuskaThe mtree writer module allows you to specify which mtree keywords
586caf54c4fSMartin Matuskawill be included in the output.
587caf54c4fSMartin MatuskaSupported keywords include:
588caf54c4fSMartin Matuska.Cm cksum , Cm device , Cm flags , Cm gid , Cm gname , Cm indent ,
589caf54c4fSMartin Matuska.Cm link , Cm md5 , Cm mode , Cm nlink , Cm rmd160 , Cm sha1 , Cm sha256 ,
590caf54c4fSMartin Matuska.Cm sha384 , Cm sha512 , Cm size , Cm time , Cm uid , Cm uname .
591caf54c4fSMartin MatuskaThe default is equivalent to:
592caf54c4fSMartin Matuska.Dq device, flags, gid, gname, link, mode, nlink, size, time, type, uid, uname .
593caf54c4fSMartin Matuska.It Cm mtree:all
594caf54c4fSMartin MatuskaEnables all of the above keywords.
595caf54c4fSMartin MatuskaYou can also use
596caf54c4fSMartin Matuska.Cm mtree:!all
597caf54c4fSMartin Matuskato disable all keywords.
598caf54c4fSMartin Matuska.It Cm mtree:use-set
599caf54c4fSMartin MatuskaEnable generation of
600caf54c4fSMartin Matuska.Cm /set
601caf54c4fSMartin Matuskalines in the output.
602caf54c4fSMartin Matuska.It Cm mtree:indent
603caf54c4fSMartin MatuskaProduce human-readable output by indenting options and splitting lines
604caf54c4fSMartin Matuskato fit into 80 columns.
605caf54c4fSMartin Matuska.It Cm zip:compression Ns = Ns Ar type
606caf54c4fSMartin MatuskaUse
607caf54c4fSMartin Matuska.Ar type
608caf54c4fSMartin Matuskaas compression method.
609caf54c4fSMartin MatuskaSupported values are store (uncompressed) and deflate (gzip algorithm).
610cdf63a70SMartin Matuska.It Cm zip:encryption
611cdf63a70SMartin MatuskaEnable encryption using traditional zip encryption.
612cdf63a70SMartin Matuska.It Cm zip:encryption Ns = Ns Ar type
613cdf63a70SMartin MatuskaUse
614cdf63a70SMartin Matuska.Ar type
615cdf63a70SMartin Matuskaas encryption type.
616cdf63a70SMartin MatuskaSupported values are zipcrypt (traditional zip encryption),
617cdf63a70SMartin Matuskaaes128 (WinZip AES-128 encryption) and aes256 (WinZip AES-256 encryption).
618cdf63a70SMartin Matuska.It Cm read_concatenated_archives
619cdf63a70SMartin MatuskaIgnore zeroed blocks in the archive, which occurs when multiple tar archives
620cdf63a70SMartin Matuskahave been concatenated together.  Without this option, only the contents of
621cdf63a70SMartin Matuskathe first concatenated archive would be read.  This option is comparable to
622cdf63a70SMartin Matuskathe
623cdf63a70SMartin Matuska.Fl i , Fl Fl ignore-zeros
624cdf63a70SMartin Matuskaoption of GNU tar.
625caf54c4fSMartin Matuska.El
626caf54c4fSMartin MatuskaIf a provided option is not supported by any module, that
627caf54c4fSMartin Matuskais a fatal error.
628c5d360f8SMartin Matuska.It Fl P , Fl Fl absolute-paths
629caf54c4fSMartin MatuskaPreserve pathnames.
630caf54c4fSMartin MatuskaBy default, absolute pathnames (those that begin with a /
631caf54c4fSMartin Matuskacharacter) have the leading slash removed both when creating archives
632caf54c4fSMartin Matuskaand extracting from them.
633caf54c4fSMartin MatuskaAlso,
634caf54c4fSMartin Matuska.Nm
635caf54c4fSMartin Matuskawill refuse to extract archive entries whose pathnames contain
636caf54c4fSMartin Matuska.Pa ..
637caf54c4fSMartin Matuskaor whose target directory would be altered by a symlink.
638caf54c4fSMartin MatuskaThis option suppresses these behaviors.
639c5d360f8SMartin Matuska.It Fl p , Fl Fl insecure , Fl Fl preserve-permissions
640caf54c4fSMartin Matuska(x mode only)
641caf54c4fSMartin MatuskaPreserve file permissions.
642*64287048SMartin MatuskaAttempt to restore the full permissions, including owner, file modes, ACLs,
643*64287048SMartin Matuskaextended atributes and extended file flags, if available, for each item
644*64287048SMartin Matuskaextracted from the archive. This is te reverse of
645*64287048SMartin Matuska.Fl Fl no-same-permissions
646*64287048SMartin Matuskaand the default if
647caf54c4fSMartin Matuska.Nm
648*64287048SMartin Matuskais being run by root and can be partially overridden by also specifying
649*64287048SMartin Matuska.Fl Fl no-acls ,
650*64287048SMartin Matuska.Fl Fl no-fflags ,
651*64287048SMartin Matuska.Fl Fl no-mac-metadata
652*64287048SMartin Matuskaor
653*64287048SMartin Matuska.Fl Fl no-xattrs .
654cdf63a70SMartin Matuska.It Fl Fl passphrase Ar passphrase
655cdf63a70SMartin MatuskaThe
656cdf63a70SMartin Matuska.Pa passphrase
657cdf63a70SMartin Matuskais used to extract or create an encrypted archive.
658cdf63a70SMartin MatuskaCurrently, zip is the only supported format that supports encryption.
659cdf63a70SMartin MatuskaYou shouldn't use this option unless you realize how insecure
660cdf63a70SMartin Matuskause of this option is.
661c5d360f8SMartin Matuska.It Fl Fl posix
662c5d360f8SMartin Matuska(c, r, u mode only)
663c5d360f8SMartin MatuskaSynonym for
664c5d360f8SMartin Matuska.Fl Fl format Ar pax
665c5d360f8SMartin Matuska.It Fl q , Fl Fl fast-read
666caf54c4fSMartin Matuska(x and t mode only)
667caf54c4fSMartin MatuskaExtract or list only the first archive entry that matches each pattern
668caf54c4fSMartin Matuskaor filename operand.
669caf54c4fSMartin MatuskaExit as soon as each specified pattern or filename has been matched.
670caf54c4fSMartin MatuskaBy default, the archive is always read to the very end, since
671caf54c4fSMartin Matuskathere can be multiple entries with the same name and, by convention,
672caf54c4fSMartin Matuskalater entries overwrite earlier entries.
673caf54c4fSMartin MatuskaThis option is provided as a performance optimization.
674caf54c4fSMartin Matuska.It Fl S
675caf54c4fSMartin Matuska(x mode only)
676caf54c4fSMartin MatuskaExtract files as sparse files.
677caf54c4fSMartin MatuskaFor every block on disk, check first if it contains only NULL bytes and seek
678caf54c4fSMartin Matuskaover it otherwise.
679c5d360f8SMartin MatuskaThis works similar to the conv=sparse option of dd.
680caf54c4fSMartin Matuska.It Fl s Ar pattern
681caf54c4fSMartin MatuskaModify file or archive member names according to
682caf54c4fSMartin Matuska.Pa pattern .
683caf54c4fSMartin MatuskaThe pattern has the format
6846c95142eSMartin Matuska.Ar /old/new/ Ns Op ghHprRsS
685caf54c4fSMartin Matuskawhere
686caf54c4fSMartin Matuska.Ar old
687caf54c4fSMartin Matuskais a basic regular expression,
688caf54c4fSMartin Matuska.Ar new
689caf54c4fSMartin Matuskais the replacement string of the matched part,
690caf54c4fSMartin Matuskaand the optional trailing letters modify
691caf54c4fSMartin Matuskahow the replacement is handled.
692caf54c4fSMartin MatuskaIf
693caf54c4fSMartin Matuska.Ar old
694caf54c4fSMartin Matuskais not matched, the pattern is skipped.
695caf54c4fSMartin MatuskaWithin
696caf54c4fSMartin Matuska.Ar new ,
697caf54c4fSMartin Matuska~ is substituted with the match, \e1 to \e9 with the content of
698caf54c4fSMartin Matuskathe corresponding captured group.
699caf54c4fSMartin MatuskaThe optional trailing g specifies that matching should continue
7006c95142eSMartin Matuskaafter the matched part and stop on the first unmatched pattern.
701caf54c4fSMartin MatuskaThe optional trailing s specifies that the pattern applies to the value
702caf54c4fSMartin Matuskaof symbolic links.
703caf54c4fSMartin MatuskaThe optional trailing p specifies that after a successful substitution
704caf54c4fSMartin Matuskathe original path name and the new path name should be printed to
705caf54c4fSMartin Matuskastandard error.
7066c95142eSMartin MatuskaOptional trailing H, R, or S characters suppress substitutions
7076c95142eSMartin Matuskafor hardlink targets, regular filenames, or symlink targets,
7086c95142eSMartin Matuskarespectively.
7096c95142eSMartin MatuskaOptional trailing h, r, or s characters enable substitutions
7106c95142eSMartin Matuskafor hardlink targets, regular filenames, or symlink targets,
7116c95142eSMartin Matuskarespectively.
7126c95142eSMartin MatuskaThe default is
7136c95142eSMartin Matuska.Ar hrs
7146c95142eSMartin Matuskawhich applies substitutions to all names.
7156c95142eSMartin MatuskaIn particular, it is never necessary to specify h, r, or s.
7166c95142eSMartin Matuska.It Fl Fl same-owner
7176c95142eSMartin Matuska(x mode only)
7186c95142eSMartin MatuskaExtract owner and group IDs.
7196c95142eSMartin MatuskaThis is the reverse of
7206c95142eSMartin Matuska.Fl Fl no-same-owner
7216c95142eSMartin Matuskaand the default behavior if
7226c95142eSMartin Matuska.Nm
7236c95142eSMartin Matuskais run as root.
7246c95142eSMartin Matuska.It Fl Fl strip-components Ar count
7256c95142eSMartin MatuskaRemove the specified number of leading path elements.
7266c95142eSMartin MatuskaPathnames with fewer elements will be silently skipped.
7276c95142eSMartin MatuskaNote that the pathname is edited after checking inclusion/exclusion patterns
7286c95142eSMartin Matuskabut before security checks.
729c5d360f8SMartin Matuska.It Fl T Ar filename , Fl Fl files-from Ar filename
730caf54c4fSMartin MatuskaIn x or t mode,
731caf54c4fSMartin Matuska.Nm
732caf54c4fSMartin Matuskawill read the list of names to be extracted from
733caf54c4fSMartin Matuska.Pa filename .
734caf54c4fSMartin MatuskaIn c mode,
735caf54c4fSMartin Matuska.Nm
736caf54c4fSMartin Matuskawill read names to be archived from
737caf54c4fSMartin Matuska.Pa filename .
738caf54c4fSMartin MatuskaThe special name
739caf54c4fSMartin Matuska.Dq -C
740caf54c4fSMartin Matuskaon a line by itself will cause the current directory to be changed to
741caf54c4fSMartin Matuskathe directory specified on the following line.
742caf54c4fSMartin MatuskaNames are terminated by newlines unless
743c5d360f8SMartin Matuska.Fl Fl null
744caf54c4fSMartin Matuskais specified.
745caf54c4fSMartin MatuskaNote that
746c5d360f8SMartin Matuska.Fl Fl null
747caf54c4fSMartin Matuskaalso disables the special handling of lines containing
748caf54c4fSMartin Matuska.Dq -C .
749acc60b03SMartin MatuskaNote:  If you are generating lists of files using
750acc60b03SMartin Matuska.Xr find 1 ,
751acc60b03SMartin Matuskayou probably want to use
752acc60b03SMartin Matuska.Fl n
753acc60b03SMartin Matuskaas well.
754c5d360f8SMartin Matuska.It Fl Fl totals
755*64287048SMartin Matuska(c, r, u modes only)
756c5d360f8SMartin MatuskaAfter archiving all files, print a summary to stderr.
757c5d360f8SMartin Matuska.It Fl U , Fl Fl unlink , Fl Fl unlink-first
758caf54c4fSMartin Matuska(x mode only)
759caf54c4fSMartin MatuskaUnlink files before creating them.
760c5d360f8SMartin MatuskaThis can be a minor performance optimization if most files
761c5d360f8SMartin Matuskaalready exist, but can make things slower if most files
762c5d360f8SMartin Matuskado not already exist.
763c5d360f8SMartin MatuskaThis flag also causes
764caf54c4fSMartin Matuska.Nm
765c5d360f8SMartin Matuskato remove intervening directory symlinks instead of
766c5d360f8SMartin Matuskareporting an error.
767c5d360f8SMartin MatuskaSee the SECURITY section below for more details.
768caf54c4fSMartin Matuska.It Fl Fl uid Ar id
769caf54c4fSMartin MatuskaUse the provided user id number and ignore the user
770caf54c4fSMartin Matuskaname from the archive.
771caf54c4fSMartin MatuskaOn create, if
772caf54c4fSMartin Matuska.Fl Fl uname
773caf54c4fSMartin Matuskais not also specified, the user name will be set to
774caf54c4fSMartin Matuskamatch the user id.
775caf54c4fSMartin Matuska.It Fl Fl uname Ar name
776caf54c4fSMartin MatuskaUse the provided user name.
777caf54c4fSMartin MatuskaOn extract, this overrides the user name in the archive;
778caf54c4fSMartin Matuskaif the provided user name does not exist on the system,
779caf54c4fSMartin Matuskait will be ignored and the user id
780caf54c4fSMartin Matuska(from the archive or from the
781caf54c4fSMartin Matuska.Fl Fl uid
782caf54c4fSMartin Matuskaoption)
783caf54c4fSMartin Matuskawill be used instead.
784caf54c4fSMartin MatuskaOn create, this sets the user name that will be stored
785caf54c4fSMartin Matuskain the archive;
786caf54c4fSMartin Matuskathe name is not verified against the system user database.
787caf54c4fSMartin Matuska.It Fl Fl use-compress-program Ar program
788caf54c4fSMartin MatuskaPipe the input (in x or t mode) or the output (in c mode) through
789caf54c4fSMartin Matuska.Pa program
790caf54c4fSMartin Matuskainstead of using the builtin compression support.
791c5d360f8SMartin Matuska.It Fl v , Fl Fl verbose
792caf54c4fSMartin MatuskaProduce verbose output.
793caf54c4fSMartin MatuskaIn create and extract modes,
794caf54c4fSMartin Matuska.Nm
795caf54c4fSMartin Matuskawill list each file name as it is read from or written to
796caf54c4fSMartin Matuskathe archive.
797caf54c4fSMartin MatuskaIn list mode,
798caf54c4fSMartin Matuska.Nm
799caf54c4fSMartin Matuskawill produce output similar to that of
800caf54c4fSMartin Matuska.Xr ls 1 .
801cdf63a70SMartin MatuskaAn additional
802caf54c4fSMartin Matuska.Fl v
803cdf63a70SMartin Matuskaoption will also provide ls-like details in create and extract mode.
804c5d360f8SMartin Matuska.It Fl Fl version
805caf54c4fSMartin MatuskaPrint version of
806caf54c4fSMartin Matuska.Nm
807caf54c4fSMartin Matuskaand
808caf54c4fSMartin Matuska.Nm libarchive ,
809caf54c4fSMartin Matuskaand exit.
810c5d360f8SMartin Matuska.It Fl w , Fl Fl confirmation , Fl Fl interactive
811caf54c4fSMartin MatuskaAsk for confirmation for every action.
812c5d360f8SMartin Matuska.It Fl X Ar filename , Fl Fl exclude-from Ar filename
813caf54c4fSMartin MatuskaRead a list of exclusion patterns from the specified file.
814caf54c4fSMartin MatuskaSee
815c5d360f8SMartin Matuska.Fl Fl exclude
816caf54c4fSMartin Matuskafor more information about the handling of exclusions.
817*64287048SMartin Matuska.It Fl Fl xattrs
818*64287048SMartin Matuska(c, r, u, x modes only)
819*64287048SMartin MatuskaArchive or extract extended attributes. This is the reverse of
820*64287048SMartin Matuska.Fl Fl no-xattrs
821*64287048SMartin Matuskaand the default behavior in c, r, and u modes or if
822*64287048SMartin Matuska.Nm
823*64287048SMartin Matuskais run in x mode as root.
824caf54c4fSMartin Matuska.It Fl y
825caf54c4fSMartin Matuska(c mode only)
826caf54c4fSMartin MatuskaCompress the resulting archive with
827caf54c4fSMartin Matuska.Xr bzip2 1 .
828caf54c4fSMartin MatuskaIn extract or list modes, this option is ignored.
829caf54c4fSMartin MatuskaNote that, unlike other
830caf54c4fSMartin Matuska.Nm tar
831caf54c4fSMartin Matuskaimplementations, this implementation recognizes bzip2 compression
832caf54c4fSMartin Matuskaautomatically when reading archives.
833c5d360f8SMartin Matuska.It Fl Z , Fl Fl compress , Fl Fl uncompress
834caf54c4fSMartin Matuska(c mode only)
835caf54c4fSMartin MatuskaCompress the resulting archive with
836caf54c4fSMartin Matuska.Xr compress 1 .
837caf54c4fSMartin MatuskaIn extract or list modes, this option is ignored.
838caf54c4fSMartin MatuskaNote that, unlike other
839caf54c4fSMartin Matuska.Nm tar
840caf54c4fSMartin Matuskaimplementations, this implementation recognizes compress compression
841caf54c4fSMartin Matuskaautomatically when reading archives.
842c5d360f8SMartin Matuska.It Fl z , Fl Fl gunzip , Fl Fl gzip
843c5d360f8SMartin Matuska(c mode only)
844c5d360f8SMartin MatuskaCompress the resulting archive with
845c5d360f8SMartin Matuska.Xr gzip 1 .
846c5d360f8SMartin MatuskaIn extract or list modes, this option is ignored.
847c5d360f8SMartin MatuskaNote that, unlike other
848c5d360f8SMartin Matuska.Nm tar
849c5d360f8SMartin Matuskaimplementations, this implementation recognizes gzip compression
850c5d360f8SMartin Matuskaautomatically when reading archives.
851caf54c4fSMartin Matuska.El
852caf54c4fSMartin Matuska.Sh ENVIRONMENT
853caf54c4fSMartin MatuskaThe following environment variables affect the execution of
854caf54c4fSMartin Matuska.Nm :
855caf54c4fSMartin Matuska.Bl -tag -width ".Ev BLOCKSIZE"
856acc60b03SMartin Matuska.It Ev TAR_READER_OPTIONS
857acc60b03SMartin MatuskaThe default options for format readers and compression readers.
858acc60b03SMartin MatuskaThe
859acc60b03SMartin Matuska.Fl Fl options
860acc60b03SMartin Matuskaoption overrides this.
861acc60b03SMartin Matuska.It Ev TAR_WRITER_OPTIONS
862acc60b03SMartin MatuskaThe default options for format writers and compression writers.
863acc60b03SMartin MatuskaThe
864acc60b03SMartin Matuska.Fl Fl options
865acc60b03SMartin Matuskaoption overrides this.
866caf54c4fSMartin Matuska.It Ev LANG
867caf54c4fSMartin MatuskaThe locale to use.
868caf54c4fSMartin MatuskaSee
869caf54c4fSMartin Matuska.Xr environ 7
870caf54c4fSMartin Matuskafor more information.
871caf54c4fSMartin Matuska.It Ev TAPE
872c5d360f8SMartin MatuskaThe default device.
873caf54c4fSMartin MatuskaThe
874caf54c4fSMartin Matuska.Fl f
875caf54c4fSMartin Matuskaoption overrides this.
876c5d360f8SMartin MatuskaPlease see the description of the
877c5d360f8SMartin Matuska.Fl f
878c5d360f8SMartin Matuskaoption above for more details.
879caf54c4fSMartin Matuska.It Ev TZ
880caf54c4fSMartin MatuskaThe timezone to use when displaying dates.
881caf54c4fSMartin MatuskaSee
882caf54c4fSMartin Matuska.Xr environ 7
883caf54c4fSMartin Matuskafor more information.
884caf54c4fSMartin Matuska.El
885c5d360f8SMartin Matuska.Sh EXIT STATUS
886c5d360f8SMartin Matuska.Ex -std
887caf54c4fSMartin Matuska.Sh EXAMPLES
888caf54c4fSMartin MatuskaThe following creates a new archive
889caf54c4fSMartin Matuskacalled
890caf54c4fSMartin Matuska.Ar file.tar.gz
891caf54c4fSMartin Matuskathat contains two files
892caf54c4fSMartin Matuska.Ar source.c
893caf54c4fSMartin Matuskaand
894caf54c4fSMartin Matuska.Ar source.h :
895caf54c4fSMartin Matuska.Dl Nm Fl czf Pa file.tar.gz Pa source.c Pa source.h
896caf54c4fSMartin Matuska.Pp
897caf54c4fSMartin MatuskaTo view a detailed table of contents for this
898caf54c4fSMartin Matuskaarchive:
899caf54c4fSMartin Matuska.Dl Nm Fl tvf Pa file.tar.gz
900caf54c4fSMartin Matuska.Pp
901caf54c4fSMartin MatuskaTo extract all entries from the archive on
902caf54c4fSMartin Matuskathe default tape drive:
903caf54c4fSMartin Matuska.Dl Nm Fl x
904caf54c4fSMartin Matuska.Pp
905caf54c4fSMartin MatuskaTo examine the contents of an ISO 9660 cdrom image:
906caf54c4fSMartin Matuska.Dl Nm Fl tf Pa image.iso
907caf54c4fSMartin Matuska.Pp
908caf54c4fSMartin MatuskaTo move file hierarchies, invoke
909caf54c4fSMartin Matuska.Nm
910caf54c4fSMartin Matuskaas
911caf54c4fSMartin Matuska.Dl Nm Fl cf Pa - Fl C Pa srcdir\ . | Nm Fl xpf Pa - Fl C Pa destdir
912caf54c4fSMartin Matuskaor more traditionally
913caf54c4fSMartin Matuska.Dl cd srcdir \&; Nm Fl cf Pa -\ . | ( cd destdir \&; Nm Fl xpf Pa - )
914caf54c4fSMartin Matuska.Pp
915caf54c4fSMartin MatuskaIn create mode, the list of files and directories to be archived
916caf54c4fSMartin Matuskacan also include directory change instructions of the form
917caf54c4fSMartin Matuska.Cm -C Ns Pa foo/baz
918caf54c4fSMartin Matuskaand archive inclusions of the form
919caf54c4fSMartin Matuska.Cm @ Ns Pa archive-file .
920caf54c4fSMartin MatuskaFor example, the command line
921caf54c4fSMartin Matuska.Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2
922caf54c4fSMartin Matuskawill create a new archive
923caf54c4fSMartin Matuska.Pa new.tar .
924caf54c4fSMartin Matuska.Nm
925caf54c4fSMartin Matuskawill read the file
926caf54c4fSMartin Matuska.Pa foo1
927caf54c4fSMartin Matuskafrom the current directory and add it to the output archive.
928caf54c4fSMartin MatuskaIt will then read each entry from
929caf54c4fSMartin Matuska.Pa old.tgz
930caf54c4fSMartin Matuskaand add those entries to the output archive.
931caf54c4fSMartin MatuskaFinally, it will switch to the
932caf54c4fSMartin Matuska.Pa /tmp
933caf54c4fSMartin Matuskadirectory and add
934caf54c4fSMartin Matuska.Pa foo2
935caf54c4fSMartin Matuskato the output archive.
936caf54c4fSMartin Matuska.Pp
937caf54c4fSMartin MatuskaAn input file in
938caf54c4fSMartin Matuska.Xr mtree 5
939caf54c4fSMartin Matuskaformat can be used to create an output archive with arbitrary ownership,
940caf54c4fSMartin Matuskapermissions, or names that differ from existing data on disk:
941caf54c4fSMartin Matuska.Pp
942cdf63a70SMartin Matuska.Bd -literal -offset indent
943cdf63a70SMartin Matuska$ cat input.mtree
944cdf63a70SMartin Matuska#mtree
945cdf63a70SMartin Matuskausr/bin uid=0 gid=0 mode=0755 type=dir
946cdf63a70SMartin Matuskausr/bin/ls uid=0 gid=0 mode=0755 type=file content=myls
947cdf63a70SMartin Matuska$ tar -cvf output.tar @input.mtree
948cdf63a70SMartin Matuska.Ed
949caf54c4fSMartin Matuska.Pp
950caf54c4fSMartin MatuskaThe
951c5d360f8SMartin Matuska.Fl Fl newer
952caf54c4fSMartin Matuskaand
953c5d360f8SMartin Matuska.Fl Fl newer-mtime
954caf54c4fSMartin Matuskaswitches accept a variety of common date and time specifications, including
955caf54c4fSMartin Matuska.Dq 12 Mar 2005 7:14:29pm ,
956caf54c4fSMartin Matuska.Dq 2005-03-12 19:14 ,
957caf54c4fSMartin Matuska.Dq 5 minutes ago ,
958caf54c4fSMartin Matuskaand
959caf54c4fSMartin Matuska.Dq 19:14 PST May 1 .
960caf54c4fSMartin Matuska.Pp
961caf54c4fSMartin MatuskaThe
962c5d360f8SMartin Matuska.Fl Fl options
963caf54c4fSMartin Matuskaargument can be used to control various details of archive generation
964caf54c4fSMartin Matuskaor reading.
965caf54c4fSMartin MatuskaFor example, you can generate mtree output which only contains
966caf54c4fSMartin Matuska.Cm type , Cm time ,
967caf54c4fSMartin Matuskaand
968caf54c4fSMartin Matuska.Cm uid
969caf54c4fSMartin Matuskakeywords:
970c5d360f8SMartin Matuska.Dl Nm Fl cf Pa file.tar Fl Fl format=mtree Fl Fl options='!all,type,time,uid' Pa dir
971caf54c4fSMartin Matuskaor you can set the compression level used by gzip or xz compression:
972c5d360f8SMartin Matuska.Dl Nm Fl czf Pa file.tar Fl Fl options='compression-level=9' .
973caf54c4fSMartin MatuskaFor more details, see the explanation of the
974caf54c4fSMartin Matuska.Fn archive_read_set_options
975caf54c4fSMartin Matuskaand
976caf54c4fSMartin Matuska.Fn archive_write_set_options
977caf54c4fSMartin MatuskaAPI calls that are described in
978caf54c4fSMartin Matuska.Xr archive_read 3
979caf54c4fSMartin Matuskaand
980caf54c4fSMartin Matuska.Xr archive_write 3 .
981caf54c4fSMartin Matuska.Sh COMPATIBILITY
982caf54c4fSMartin MatuskaThe bundled-arguments format is supported for compatibility
983caf54c4fSMartin Matuskawith historic implementations.
984caf54c4fSMartin MatuskaIt consists of an initial word (with no leading - character) in which
985caf54c4fSMartin Matuskaeach character indicates an option.
986caf54c4fSMartin MatuskaArguments follow as separate words.
987caf54c4fSMartin MatuskaThe order of the arguments must match the order
988caf54c4fSMartin Matuskaof the corresponding characters in the bundled command word.
989caf54c4fSMartin MatuskaFor example,
990caf54c4fSMartin Matuska.Dl Nm Cm tbf 32 Pa file.tar
991caf54c4fSMartin Matuskaspecifies three flags
992caf54c4fSMartin Matuska.Cm t ,
993caf54c4fSMartin Matuska.Cm b ,
994caf54c4fSMartin Matuskaand
995caf54c4fSMartin Matuska.Cm f .
996caf54c4fSMartin MatuskaThe
997caf54c4fSMartin Matuska.Cm b
998caf54c4fSMartin Matuskaand
999caf54c4fSMartin Matuska.Cm f
1000caf54c4fSMartin Matuskaflags both require arguments,
1001caf54c4fSMartin Matuskaso there must be two additional items
1002caf54c4fSMartin Matuskaon the command line.
1003caf54c4fSMartin MatuskaThe
1004caf54c4fSMartin Matuska.Ar 32
1005caf54c4fSMartin Matuskais the argument to the
1006caf54c4fSMartin Matuska.Cm b
1007caf54c4fSMartin Matuskaflag, and
1008caf54c4fSMartin Matuska.Ar file.tar
1009caf54c4fSMartin Matuskais the argument to the
1010caf54c4fSMartin Matuska.Cm f
1011caf54c4fSMartin Matuskaflag.
1012caf54c4fSMartin Matuska.Pp
1013caf54c4fSMartin MatuskaThe mode options c, r, t, u, and x and the options
1014caf54c4fSMartin Matuskab, f, l, m, o, v, and w comply with SUSv2.
1015caf54c4fSMartin Matuska.Pp
1016caf54c4fSMartin MatuskaFor maximum portability, scripts that invoke
1017caf54c4fSMartin Matuska.Nm tar
1018caf54c4fSMartin Matuskashould use the bundled-argument format above, should limit
1019caf54c4fSMartin Matuskathemselves to the
1020caf54c4fSMartin Matuska.Cm c ,
1021caf54c4fSMartin Matuska.Cm t ,
1022caf54c4fSMartin Matuskaand
1023caf54c4fSMartin Matuska.Cm x
1024caf54c4fSMartin Matuskamodes, and the
1025caf54c4fSMartin Matuska.Cm b ,
1026caf54c4fSMartin Matuska.Cm f ,
1027caf54c4fSMartin Matuska.Cm m ,
1028caf54c4fSMartin Matuska.Cm v ,
1029caf54c4fSMartin Matuskaand
1030caf54c4fSMartin Matuska.Cm w
1031caf54c4fSMartin Matuskaoptions.
1032caf54c4fSMartin Matuska.Pp
1033caf54c4fSMartin MatuskaAdditional long options are provided to improve compatibility with other
1034caf54c4fSMartin Matuskatar implementations.
1035caf54c4fSMartin Matuska.Sh SECURITY
1036caf54c4fSMartin MatuskaCertain security issues are common to many archiving programs, including
1037caf54c4fSMartin Matuska.Nm .
1038caf54c4fSMartin MatuskaIn particular, carefully-crafted archives can request that
1039caf54c4fSMartin Matuska.Nm
1040caf54c4fSMartin Matuskaextract files to locations outside of the target directory.
1041caf54c4fSMartin MatuskaThis can potentially be used to cause unwitting users to overwrite
1042caf54c4fSMartin Matuskafiles they did not intend to overwrite.
1043caf54c4fSMartin MatuskaIf the archive is being extracted by the superuser, any file
1044caf54c4fSMartin Matuskaon the system can potentially be overwritten.
1045caf54c4fSMartin MatuskaThere are three ways this can happen.
1046caf54c4fSMartin MatuskaAlthough
1047caf54c4fSMartin Matuska.Nm
1048caf54c4fSMartin Matuskahas mechanisms to protect against each one,
1049caf54c4fSMartin Matuskasavvy users should be aware of the implications:
1050caf54c4fSMartin Matuska.Bl -bullet -width indent
1051caf54c4fSMartin Matuska.It
1052caf54c4fSMartin MatuskaArchive entries can have absolute pathnames.
1053caf54c4fSMartin MatuskaBy default,
1054caf54c4fSMartin Matuska.Nm
1055caf54c4fSMartin Matuskaremoves the leading
1056caf54c4fSMartin Matuska.Pa /
1057caf54c4fSMartin Matuskacharacter from filenames before restoring them to guard against this problem.
1058caf54c4fSMartin Matuska.It
1059caf54c4fSMartin MatuskaArchive entries can have pathnames that include
1060caf54c4fSMartin Matuska.Pa ..
1061caf54c4fSMartin Matuskacomponents.
1062caf54c4fSMartin MatuskaBy default,
1063caf54c4fSMartin Matuska.Nm
1064caf54c4fSMartin Matuskawill not extract files containing
1065caf54c4fSMartin Matuska.Pa ..
1066caf54c4fSMartin Matuskacomponents in their pathname.
1067caf54c4fSMartin Matuska.It
1068caf54c4fSMartin MatuskaArchive entries can exploit symbolic links to restore
1069caf54c4fSMartin Matuskafiles to other directories.
1070caf54c4fSMartin MatuskaAn archive can restore a symbolic link to another directory,
1071caf54c4fSMartin Matuskathen use that link to restore a file into that directory.
1072caf54c4fSMartin MatuskaTo guard against this,
1073caf54c4fSMartin Matuska.Nm
1074caf54c4fSMartin Matuskachecks each extracted path for symlinks.
1075caf54c4fSMartin MatuskaIf the final path element is a symlink, it will be removed
1076caf54c4fSMartin Matuskaand replaced with the archive entry.
1077caf54c4fSMartin MatuskaIf
1078caf54c4fSMartin Matuska.Fl U
1079caf54c4fSMartin Matuskais specified, any intermediate symlink will also be unconditionally removed.
1080caf54c4fSMartin MatuskaIf neither
1081caf54c4fSMartin Matuska.Fl U
1082caf54c4fSMartin Matuskanor
1083caf54c4fSMartin Matuska.Fl P
1084caf54c4fSMartin Matuskais specified,
1085caf54c4fSMartin Matuska.Nm
1086caf54c4fSMartin Matuskawill refuse to extract the entry.
1087caf54c4fSMartin Matuska.El
1088caf54c4fSMartin MatuskaTo protect yourself, you should be wary of any archives that
1089caf54c4fSMartin Matuskacome from untrusted sources.
1090caf54c4fSMartin MatuskaYou should examine the contents of an archive with
1091caf54c4fSMartin Matuska.Dl Nm Fl tf Pa filename
1092caf54c4fSMartin Matuskabefore extraction.
1093caf54c4fSMartin MatuskaYou should use the
1094caf54c4fSMartin Matuska.Fl k
1095caf54c4fSMartin Matuskaoption to ensure that
1096caf54c4fSMartin Matuska.Nm
1097caf54c4fSMartin Matuskawill not overwrite any existing files or the
1098caf54c4fSMartin Matuska.Fl U
1099caf54c4fSMartin Matuskaoption to remove any pre-existing files.
1100caf54c4fSMartin MatuskaYou should generally not extract archives while running with super-user
1101caf54c4fSMartin Matuskaprivileges.
1102caf54c4fSMartin MatuskaNote that the
1103caf54c4fSMartin Matuska.Fl P
1104caf54c4fSMartin Matuskaoption to
1105caf54c4fSMartin Matuska.Nm
1106caf54c4fSMartin Matuskadisables the security checks above and allows you to extract
1107caf54c4fSMartin Matuskaan archive while preserving any absolute pathnames,
1108caf54c4fSMartin Matuska.Pa ..
1109caf54c4fSMartin Matuskacomponents, or symlinks to other directories.
1110caf54c4fSMartin Matuska.Sh SEE ALSO
1111caf54c4fSMartin Matuska.Xr bzip2 1 ,
1112caf54c4fSMartin Matuska.Xr compress 1 ,
1113caf54c4fSMartin Matuska.Xr cpio 1 ,
1114caf54c4fSMartin Matuska.Xr gzip 1 ,
1115caf54c4fSMartin Matuska.Xr mt 1 ,
1116caf54c4fSMartin Matuska.Xr pax 1 ,
1117caf54c4fSMartin Matuska.Xr shar 1 ,
1118c5d360f8SMartin Matuska.Xr xz 1 ,
1119caf54c4fSMartin Matuska.Xr libarchive 3 ,
1120caf54c4fSMartin Matuska.Xr libarchive-formats 5 ,
1121caf54c4fSMartin Matuska.Xr tar 5
1122caf54c4fSMartin Matuska.Sh STANDARDS
1123caf54c4fSMartin MatuskaThere is no current POSIX standard for the tar command; it appeared
1124caf54c4fSMartin Matuskain
1125caf54c4fSMartin Matuska.St -p1003.1-96
1126caf54c4fSMartin Matuskabut was dropped from
1127caf54c4fSMartin Matuska.St -p1003.1-2001 .
1128c5d360f8SMartin MatuskaThe options supported by this implementation were developed by surveying a
1129caf54c4fSMartin Matuskanumber of existing tar implementations as well as the old POSIX specification
1130caf54c4fSMartin Matuskafor tar and the current POSIX specification for pax.
1131caf54c4fSMartin Matuska.Pp
1132caf54c4fSMartin MatuskaThe ustar and pax interchange file formats are defined by
1133caf54c4fSMartin Matuska.St -p1003.1-2001
1134caf54c4fSMartin Matuskafor the pax command.
1135caf54c4fSMartin Matuska.Sh HISTORY
1136caf54c4fSMartin MatuskaA
1137caf54c4fSMartin Matuska.Nm tar
1138caf54c4fSMartin Matuskacommand appeared in Seventh Edition Unix, which was released in January, 1979.
1139caf54c4fSMartin MatuskaThere have been numerous other implementations,
1140caf54c4fSMartin Matuskamany of which extended the file format.
1141caf54c4fSMartin MatuskaJohn Gilmore's
1142caf54c4fSMartin Matuska.Nm pdtar
1143caf54c4fSMartin Matuskapublic-domain implementation (circa November, 1987)
1144caf54c4fSMartin Matuskawas quite influential, and formed the basis of GNU tar.
1145caf54c4fSMartin MatuskaGNU tar was included as the standard system tar
1146caf54c4fSMartin Matuskain
1147caf54c4fSMartin Matuska.Fx
1148caf54c4fSMartin Matuskabeginning with
1149caf54c4fSMartin Matuska.Fx 1.0 .
1150caf54c4fSMartin Matuska.Pp
1151caf54c4fSMartin MatuskaThis is a complete re-implementation based on the
1152caf54c4fSMartin Matuska.Xr libarchive 3
1153caf54c4fSMartin Matuskalibrary.
1154c5d360f8SMartin MatuskaIt was first released with
1155c5d360f8SMartin Matuska.Fx 5.4
1156c5d360f8SMartin Matuskain May, 2005.
1157caf54c4fSMartin Matuska.Sh BUGS
1158caf54c4fSMartin MatuskaThis program follows
1159caf54c4fSMartin Matuska.St -p1003.1-96
1160caf54c4fSMartin Matuskafor the definition of the
1161caf54c4fSMartin Matuska.Fl l
1162caf54c4fSMartin Matuskaoption.
1163caf54c4fSMartin MatuskaNote that GNU tar prior to version 1.15 treated
1164caf54c4fSMartin Matuska.Fl l
1165caf54c4fSMartin Matuskaas a synonym for the
1166c5d360f8SMartin Matuska.Fl Fl one-file-system
1167caf54c4fSMartin Matuskaoption.
1168caf54c4fSMartin Matuska.Pp
1169caf54c4fSMartin MatuskaThe
1170caf54c4fSMartin Matuska.Fl C Pa dir
1171caf54c4fSMartin Matuskaoption may differ from historic implementations.
1172caf54c4fSMartin Matuska.Pp
1173caf54c4fSMartin MatuskaAll archive output is written in correctly-sized blocks, even
1174caf54c4fSMartin Matuskaif the output is being compressed.
1175caf54c4fSMartin MatuskaWhether or not the last output block is padded to a full
1176caf54c4fSMartin Matuskablock size varies depending on the format and the
1177caf54c4fSMartin Matuskaoutput device.
1178caf54c4fSMartin MatuskaFor tar and cpio formats, the last block of output is padded
1179caf54c4fSMartin Matuskato a full block size if the output is being
1180caf54c4fSMartin Matuskawritten to standard output or to a character or block device such as
1181caf54c4fSMartin Matuskaa tape drive.
1182caf54c4fSMartin MatuskaIf the output is being written to a regular file, the last block
1183caf54c4fSMartin Matuskawill not be padded.
1184caf54c4fSMartin MatuskaMany compressors, including
1185caf54c4fSMartin Matuska.Xr gzip 1
1186caf54c4fSMartin Matuskaand
1187caf54c4fSMartin Matuska.Xr bzip2 1 ,
1188caf54c4fSMartin Matuskacomplain about the null padding when decompressing an archive created by
1189caf54c4fSMartin Matuska.Nm ,
1190caf54c4fSMartin Matuskaalthough they still extract it correctly.
1191caf54c4fSMartin Matuska.Pp
1192caf54c4fSMartin MatuskaThe compression and decompression is implemented internally, so
1193caf54c4fSMartin Matuskathere may be insignificant differences between the compressed output
1194caf54c4fSMartin Matuskagenerated by
1195caf54c4fSMartin Matuska.Dl Nm Fl czf Pa - file
1196caf54c4fSMartin Matuskaand that generated by
1197caf54c4fSMartin Matuska.Dl Nm Fl cf Pa - file | Nm gzip
1198caf54c4fSMartin Matuska.Pp
1199caf54c4fSMartin MatuskaThe default should be to read and write archives to the standard I/O paths,
1200caf54c4fSMartin Matuskabut tradition (and POSIX) dictates otherwise.
1201caf54c4fSMartin Matuska.Pp
1202caf54c4fSMartin MatuskaThe
1203caf54c4fSMartin Matuska.Cm r
1204caf54c4fSMartin Matuskaand
1205caf54c4fSMartin Matuska.Cm u
1206caf54c4fSMartin Matuskamodes require that the archive be uncompressed
1207caf54c4fSMartin Matuskaand located in a regular file on disk.
1208caf54c4fSMartin MatuskaOther archives can be modified using
1209caf54c4fSMartin Matuska.Cm c
1210caf54c4fSMartin Matuskamode with the
1211caf54c4fSMartin Matuska.Pa @archive-file
1212caf54c4fSMartin Matuskaextension.
1213caf54c4fSMartin Matuska.Pp
1214caf54c4fSMartin MatuskaTo archive a file called
1215caf54c4fSMartin Matuska.Pa @foo
1216caf54c4fSMartin Matuskaor
1217caf54c4fSMartin Matuska.Pa -foo
1218caf54c4fSMartin Matuskayou must specify it as
1219caf54c4fSMartin Matuska.Pa ./@foo
1220caf54c4fSMartin Matuskaor
1221caf54c4fSMartin Matuska.Pa ./-foo ,
1222caf54c4fSMartin Matuskarespectively.
1223caf54c4fSMartin Matuska.Pp
1224caf54c4fSMartin MatuskaIn create mode, a leading
1225caf54c4fSMartin Matuska.Pa ./
1226caf54c4fSMartin Matuskais always removed.
1227caf54c4fSMartin MatuskaA leading
1228caf54c4fSMartin Matuska.Pa /
1229caf54c4fSMartin Matuskais stripped unless the
1230caf54c4fSMartin Matuska.Fl P
1231caf54c4fSMartin Matuskaoption is specified.
1232caf54c4fSMartin Matuska.Pp
1233caf54c4fSMartin MatuskaThere needs to be better support for file selection on both create
1234caf54c4fSMartin Matuskaand extract.
1235caf54c4fSMartin Matuska.Pp
1236cdf63a70SMartin MatuskaThere is not yet any support for multi-volume archives.
1237caf54c4fSMartin Matuska.Pp
1238caf54c4fSMartin MatuskaConverting between dissimilar archive formats (such as tar and cpio) using the
1239caf54c4fSMartin Matuska.Cm @ Ns Pa -
1240caf54c4fSMartin Matuskaconvention can cause hard link information to be lost.
1241caf54c4fSMartin Matuska(This is a consequence of the incompatible ways that different archive
1242caf54c4fSMartin Matuskaformats store hardlink information.)
1243