1BSDTAR(1)                 BSD General Commands Manual                BSDTAR(1)
2

NAME

4     bsdtar — manipulate tape archives
5

SYNOPSIS

7     bsdtar [bundled-flags ⟨args⟩] [⟨file⟩ | ⟨pattern⟩ ...]
8     bsdtar {-c} [options] [files | directories]
9     bsdtar {-r | -u} -f archive-file [options] [files | directories]
10     bsdtar {-t | -x} [options] [patterns]
11

DESCRIPTION

13     bsdtar creates and manipulates streaming archive files.  This implementa‐
14     tion can extract from tar, pax, cpio, zip, jar, ar, xar, rpm, 7-zip, and
15     ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip, 7-zip, and
16     shar archives.
17
18     The first synopsis form shows a “bundled” option word.  This usage is
19     provided for compatibility with historical implementations.  See COMPATI‐
20     BILITY below for details.
21
22     The other synopsis forms show the preferred usage.  The first option to
23     bsdtar is a mode indicator from the following list:
24     -c      Create a new archive containing the specified items.  The long
25             option form is --create.
26     -r      Like -c, but new entries are appended to the archive.  Note that
27             this only works on uncompressed archives stored in regular files.
28             The -f option is required.  The long option form is --append.
29     -t      List archive contents to stdout.  The long option form is --list.
30     -u      Like -r, but new entries are added only if they have a modifica‐
31             tion date newer than the corresponding entry in the archive.
32             Note that this only works on uncompressed archives stored in reg‐
33             ular files.  The -f option is required.  The long form is
34             --update.
35     -x      Extract to disk from the archive.  If a file with the same name
36             appears more than once in the archive, each copy will be
37             extracted, with later copies overwriting (replacing) earlier
38             copies.  The long option form is --extract.
39
40     In -c, -r, or -u mode, each specified file or directory is added to the
41     archive in the order specified on the command line.  By default, the con‐
42     tents of each directory are also archived.
43
44     In extract or list mode, the entire command line is read and parsed
45     before the archive is opened.  The pathnames or patterns on the command
46     line indicate which items in the archive should be processed.  Patterns
47     are shell-style globbing patterns as documented in tcsh(1).
48

OPTIONS

50     Unless specifically stated otherwise, options are applicable in all oper‐
51     ating modes.
52
53     @archive
54             (c and r modes only) The specified archive is opened and the
55             entries in it will be appended to the current archive.  As a sim‐
56             ple example,
57                   bsdtar -c -f - newfile @original.tar
58             writes a new archive to standard output containing a file newfile
59             and all of the entries from original.tar.  In contrast,
60                   bsdtar -c -f - newfile original.tar
61             creates a new archive with only two entries.  Similarly,
62                   bsdtar -czf - --format pax @-
63             reads an archive from standard input (whose format will be deter‐
64             mined automatically) and converts it into a gzip-compressed pax-
65             format archive on stdout.  In this way, bsdtar can be used to
66             convert archives from one format to another.
67
68     -a, --auto-compress
69             (c mode only) Use the archive suffix to decide a set of the for‐
70             mat and the compressions.  As a simple example,
71                   bsdtar -a -cf archive.tgz source.c source.h
72             creates a new archive with restricted pax format and gzip com‐
73             pression,
74                   bsdtar -a -cf archive.tar.bz2.uu source.c source.h
75             creates a new archive with restricted pax format and bzip2 com‐
76             pression and uuencode compression,
77                   bsdtar -a -cf archive.zip source.c source.h
78             creates a new archive with zip format,
79                   bsdtar -a -jcf archive.tgz source.c source.h
80             ignores the “-j” option, and creates a new archive with
81             restricted pax format and gzip compression,
82                   bsdtar -a -jcf archive.xxx source.c source.h
83             if it is unknown suffix or no suffix, creates a new archive with
84             restricted pax format and bzip2 compression.
85
86     --acls  (c, r, u, x modes only) Archive or extract POSIX.1e or NFSv4
87             ACLs. This is the reverse of --no-acls and the default behavior
88             in c, r, and u modes (except on Mac OS X) or if bsdtar is run in
89             x mode as root. On Mac OS X this option translates extended ACLs
90             to NFSv4 ACLs. To store extended ACLs the --mac-metadata option
91             is preferred.
92
93     -B, --read-full-blocks
94             Ignored for compatibility with other tar(1) implementations.
95
96     -b blocksize, --block-size blocksize
97             Specify the block size, in 512-byte records, for tape drive I/O.
98             As a rule, this argument is only needed when reading from or
99             writing to tape drives, and usually not even then as the default
100             block size of 20 records (10240 bytes) is very common.
101
102     -C directory, --cd directory, --directory directory
103             In c and r mode, this changes the directory before adding the
104             following files.  In x mode, change directories after opening the
105             archive but before extracting entries from the archive.
106
107     --chroot
108             (x mode only) chroot() to the current directory after processing
109             any -C options and before extracting any files.
110
111     --clear-nochange-fflags
112             (x mode only) Before removing file system objects to replace
113             them, clear platform-specific file attributes or file flags that
114             might prevent removal.
115
116     --exclude pattern
117             Do not process files or directories that match the specified pat‐
118             tern.  Note that exclusions take precedence over patterns or
119             filenames specified on the command line.
120
121     --exclude-vcs
122             Do not process files or directories internally used by the ver‐
123             sion control systems ‘CVS’, ‘RCS’, ‘SCCS’, ‘SVN’, ‘Arch’,
124             ‘Bazaar’, ‘Mercurial’ and ‘Darcs’.
125
126     --fflags
127             (c, r, u, x modes only) Archive or extract platform-specific file
128             attributes or file flags.  This is the reverse of --no-fflags and
129             the default behavior in c, r, and u modes or if bsdtar is run in
130             x mode as root.
131
132     --format format
133             (c, r, u mode only) Use the specified format for the created ar‐
134             chive.  Supported formats include “cpio”, “pax”, “shar”, and
135             “ustar”.  Other formats may also be supported; see
136             libarchive-formats(5) for more information about currently-sup‐
137             ported formats.  In r and u modes, when extending an existing ar‐
138             chive, the format specified here must be compatible with the for‐
139             mat of the existing archive on disk.
140
141     -f file, --file file
142             Read the archive from or write the archive to the specified file.
143             The filename can be - for standard input or standard output.  The
144             default varies by system; on FreeBSD, the default is /dev/sa0; on
145             Linux, the default is /dev/st0.
146
147     --gid id
148             Use the provided group id number.  On extract, this overrides the
149             group id in the archive; the group name in the archive will be
150             ignored.  On create, this overrides the group id read from disk;
151             if --gname is not also specified, the group name will be set to
152             match the group id.
153
154     --gname name
155             Use the provided group name.  On extract, this overrides the
156             group name in the archive; if the provided group name does not
157             exist on the system, the group id (from the archive or from the
158             --gid option) will be used instead.  On create, this sets the
159             group name that will be stored in the archive; the name will not
160             be verified against the system group database.
161
162     -H      (c and r modes only) Symbolic links named on the command line
163             will be followed; the target of the link will be archived, not
164             the link itself.
165
166     -h      (c and r modes only) Synonym for -L.
167
168     -I      Synonym for -T.
169
170     --help  Show usage.
171
172     --hfsCompression
173             (x mode only) Mac OS X specific (v10.6 or later). Compress
174             extracted regular files with HFS+ compression.
175
176     --ignore-zeros
177             An alias of --options read_concatenated_archives for compatibil‐
178             ity with GNU tar.
179
180     --include pattern
181             Process only files or directories that match the specified pat‐
182             tern.  Note that exclusions specified with --exclude take prece‐
183             dence over inclusions.  If no inclusions are explicitly speci‐
184             fied, all entries are processed by default.  The --include option
185             is especially useful when filtering archives.  For example, the
186             command
187                   bsdtar -c -f new.tar --include='*foo*' @old.tgz
188             creates a new archive new.tar containing only the entries from
189             old.tgz containing the string ‘foo’.
190
191     -J, --xz
192             (c mode only) Compress the resulting archive with xz(1).  In
193             extract or list modes, this option is ignored.  Note that this
194             tar implementation recognizes XZ compression automatically when
195             reading archives.
196
197     -j, --bzip, --bzip2, --bunzip2
198             (c mode only) Compress the resulting archive with bzip2(1).  In
199             extract or list modes, this option is ignored.  Note that this
200             tar implementation recognizes bzip2 compression automatically
201             when reading archives.
202
203     -k, --keep-old-files
204             (x mode only) Do not overwrite existing files.  In particular, if
205             a file appears more than once in an archive, later copies will
206             not overwrite earlier copies.
207
208     --keep-newer-files
209             (x mode only) Do not overwrite existing files that are newer than
210             the versions appearing in the archive being extracted.
211
212     -L, --dereference
213             (c and r modes only) All symbolic links will be followed.  Nor‐
214             mally, symbolic links are archived as such.  With this option,
215             the target of the link will be archived instead.
216
217     -l, --check-links
218             (c and r modes only) Issue a warning message unless all links to
219             each file are archived.
220
221     --lrzip
222             (c mode only) Compress the resulting archive with lrzip(1).  In
223             extract or list modes, this option is ignored.  Note that this
224             tar implementation recognizes lrzip compression automatically
225             when reading archives.
226
227     --lz4   (c mode only) Compress the archive with lz4-compatible compres‐
228             sion before writing it.  In extract or list modes, this option is
229             ignored.  Note that this tar implementation recognizes lz4 com‐
230             pression automatically when reading archives.
231
232     --zstd  (c mode only) Compress the archive with zstd-compatible compres‐
233             sion before writing it.  In extract or list modes, this option is
234             ignored.  Note that this tar implementation recognizes zstd com‐
235             pression automatically when reading archives.
236
237     --lzma  (c mode only) Compress the resulting archive with the original
238             LZMA algorithm.  In extract or list modes, this option is
239             ignored.  Use of this option is discouraged and new archives
240             should be created with --xz instead.  Note that this tar imple‐
241             mentation recognizes LZMA compression automatically when reading
242             archives.
243
244     --lzop  (c mode only) Compress the resulting archive with lzop(1).  In
245             extract or list modes, this option is ignored.  Note that this
246             tar implementation recognizes LZO compression automatically when
247             reading archives.
248
249     -m, --modification-time
250             (x mode only) Do not extract modification time.  By default, the
251             modification time is set to the time stored in the archive.
252
253     --mac-metadata
254             (c, r, u and x mode only) Mac OS X specific. Archive or extract
255             extended ACLs and extended file attributes using copyfile(3) in
256             AppleDouble format. This is the reverse of --no-mac-metadata.
257             and the default behavior in c, r, and u modes or if bsdtar is run
258             in x mode as root.
259
260     -n, --norecurse, --no-recursion
261             Do not operate recursively on the content of directories.
262
263     --newer date
264             (c, r, u modes only) Only include files and directories newer
265             than the specified date.  This compares ctime entries.
266
267     --newer-mtime date
268             (c, r, u modes only) Like --newer, except it compares mtime
269             entries instead of ctime entries.
270
271     --newer-than file
272             (c, r, u modes only) Only include files and directories newer
273             than the specified file.  This compares ctime entries.
274
275     --newer-mtime-than file
276             (c, r, u modes only) Like --newer-than, except it compares mtime
277             entries instead of ctime entries.
278
279     --nodump
280             (c and r modes only) Honor the nodump file flag by skipping this
281             file.
282
283     --nopreserveHFSCompression
284             (x mode only) Mac OS X specific (v10.6 or later). Do not compress
285             extracted regular files which were compressed with HFS+ compres‐
286             sion before archived.  By default, compress the regular files
287             again with HFS+ compression.
288
289     --null  (use with -I or -T) Filenames or patterns are separated by null
290             characters, not by newlines.  This is often used to read file‐
291             names output by the -print0 option to find(1).
292
293     --no-acls
294             (c, r, u, x modes only) Do not archive or extract POSIX.1e or
295             NFSv4 ACLs. This is the reverse of --acls and the default behav‐
296             ior if bsdtar is run as non-root in x mode (on Mac OS X as any
297             user in c, r, u and x modes).
298
299     --no-fflags
300             (c, r, u, x modes only) Do not archive or extract file attributes
301             or file flags. This is the reverse of --fflags and the default
302             behavior if bsdtar is run as non-root in x mode.
303
304     --no-mac-metadata
305             (x mode only) Mac OS X specific. Do not archive or extract ACLs
306             and extended file attributes using copyfile(3) in AppleDouble
307             format. This is the reverse of --mac-metadata.  and the default
308             behavior if bsdtar is run as non-root in x mode.
309
310     --no-same-owner
311             (x mode only) Do not extract owner and group IDs.  This is the
312             reverse of --same-owner and the default behavior if bsdtar is run
313             as non-root.
314
315     --no-same-permissions
316             (x mode only) Do not extract full permissions (SGID, SUID, sticky
317             bit, file attributes or file flags, extended file attributes and
318             ACLs).  This is the reverse of -p and the default behavior if
319             bsdtar is run as non-root.
320
321     --no-xattrs
322             (c, r, u, x modes only) Do not archive or extract extended file
323             attributes. This is the reverse of --xattrs and the default
324             behavior if bsdtar is run as non-root in x mode.
325
326     --numeric-owner
327             This is equivalent to --uname "" --gname "".  On extract, it
328             causes user and group names in the archive to be ignored in favor
329             of the numeric user and group ids.  On create, it causes user and
330             group names to not be stored in the archive.
331
332     -O, --to-stdout
333             (x, t modes only) In extract (-x) mode, files will be written to
334             standard out rather than being extracted to disk.  In list (-t)
335             mode, the file listing will be written to stderr rather than the
336             usual stdout.
337
338     -o      (x mode) Use the user and group of the user running the program
339             rather than those specified in the archive.  Note that this has
340             no significance unless -p is specified, and the program is being
341             run by the root user.  In this case, the file modes and flags
342             from the archive will be restored, but ACLs or owner information
343             in the archive will be discarded.
344
345     -o      (c, r, u mode) A synonym for --format ustar
346
347     --older date
348             (c, r, u modes only) Only include files and directories older
349             than the specified date.  This compares ctime entries.
350
351     --older-mtime date
352             (c, r, u modes only) Like --older, except it compares mtime
353             entries instead of ctime entries.
354
355     --older-than file
356             (c, r, u modes only) Only include files and directories older
357             than the specified file.  This compares ctime entries.
358
359     --older-mtime-than file
360             (c, r, u modes only) Like --older-than, except it compares mtime
361             entries instead of ctime entries.
362
363     --one-file-system
364             (c, r, and u modes) Do not cross mount points.
365
366     --options options
367             Select optional behaviors for particular modules.  The argument
368             is a text string containing comma-separated keywords and values.
369             These are passed to the modules that handle particular formats to
370             control how those formats will behave.  Each option has one of
371             the following forms:
372             key=value
373                     The key will be set to the specified value in every mod‐
374                     ule that supports it.  Modules that do not support this
375                     key will ignore it.
376             key     The key will be enabled in every module that supports it.
377                     This is equivalent to key=1.
378             !key    The key will be disabled in every module that supports
379                     it.
380             module:key=value, module:key, module:!key
381                     As above, but the corresponding key and value will be
382                     provided only to modules whose name matches module.
383             The currently supported modules and keys are:
384             iso9660:joliet
385                     Support Joliet extensions.  This is enabled by default,
386                     use !joliet or iso9660:!joliet to disable.
387             iso9660:rockridge
388                     Support Rock Ridge extensions.  This is enabled by
389                     default, use !rockridge or iso9660:!rockridge to disable.
390             gzip:compression-level
391                     A decimal integer from 1 to 9 specifying the gzip com‐
392                     pression level.
393             gzip:timestamp
394                     Store timestamp. This is enabled by default, use
395                     !timestamp or gzip:!timestamp to disable.
396             lrzip:compression=type
397                     Use type as compression method.  Supported values are
398                     bzip2, gzip, lzo (ultra fast), and zpaq (best, extremely
399                     slow).
400             lrzip:compression-level
401                     A decimal integer from 1 to 9 specifying the lrzip com‐
402                     pression level.
403             lz4:compression-level
404                     A decimal integer from 1 to 9 specifying the lzop com‐
405                     pression level.
406             lz4:stream-checksum
407                     Enable stream checksum. This is by default, use
408                     lz4:!stream-checksum to disable.
409             lz4:block-checksum
410                     Enable block checksum (Disabled by default).
411             lz4:block-size
412                     A decimal integer from 4 to 7 specifying the lz4 compres‐
413                     sion block size (7 is set by default).
414             lz4:block-dependence
415                     Use the previous block of the block being compressed for
416                     a compression dictionary to improve compression ratio.
417             zstd:compression-level
418                     A decimal integer from 1 to 22 specifying the zstd com‐
419                     pression level.
420             lzop:compression-level
421                     A decimal integer from 1 to 9 specifying the lzop com‐
422                     pression level.
423             xz:compression-level
424                     A decimal integer from 0 to 9 specifying the xz compres‐
425                     sion level.
426             mtree:keyword
427                     The mtree writer module allows you to specify which mtree
428                     keywords will be included in the output.  Supported key‐
429                     words include: cksum, device, flags, gid, gname, indent,
430                     link, md5, mode, nlink, rmd160, sha1, sha256, sha384,
431                     sha512, size, time, uid, uname.  The default is equiva‐
432                     lent to: “device, flags, gid, gname, link, mode, nlink,
433                     size, time, type, uid, uname”.
434             mtree:all
435                     Enables all of the above keywords.  You can also use
436                     mtree:!all to disable all keywords.
437             mtree:use-set
438                     Enable generation of /set lines in the output.
439             mtree:indent
440                     Produce human-readable output by indenting options and
441                     splitting lines to fit into 80 columns.
442             zip:compression=type
443                     Use type as compression method.  Supported values are
444                     store (uncompressed) and deflate (gzip algorithm).
445             zip:encryption
446                     Enable encryption using traditional zip encryption.
447             zip:encryption=type
448                     Use type as encryption type.  Supported values are
449                     zipcrypt (traditional zip encryption), aes128 (WinZip
450                     AES-128 encryption) and aes256 (WinZip AES-256 encryp‐
451                     tion).
452             read_concatenated_archives
453                     Ignore zeroed blocks in the archive, which occurs when
454                     multiple tar archives have been concatenated together.
455                     Without this option, only the contents of the first con‐
456                     catenated archive would be read.  This option is compara‐
457                     ble to the -i, --ignore-zeros option of GNU tar.
458             If a provided option is not supported by any module, that is a
459             fatal error.
460
461     -P, --absolute-paths
462             Preserve pathnames.  By default, absolute pathnames (those that
463             begin with a / character) have the leading slash removed both
464             when creating archives and extracting from them.  Also, bsdtar
465             will refuse to extract archive entries whose pathnames contain ..
466             or whose target directory would be altered by a symlink.  This
467             option suppresses these behaviors.
468
469     -p, --insecure, --preserve-permissions
470             (x mode only) Preserve file permissions.  Attempt to restore the
471             full permissions, including file modes, file attributes or file
472             flags, extended file attributes and ACLs, if available, for each
473             item extracted from the archive. This is the reverse of
474             --no-same-permissions and the default if bsdtar is being run as
475             root. It can be partially overridden by also specifying
476             --no-acls, --no-fflags, --no-mac-metadata or --no-xattrs.
477
478     --passphrase passphrase
479             The passphrase is used to extract or create an encrypted archive.
480             Currently, zip is the only supported format that supports encryp‐
481             tion.  You shouldn't use this option unless you realize how inse‐
482             cure use of this option is.
483
484     --posix
485             (c, r, u mode only) Synonym for --format pax
486
487     -q, --fast-read
488             (x and t mode only) Extract or list only the first archive entry
489             that matches each pattern or filename operand.  Exit as soon as
490             each specified pattern or filename has been matched.  By default,
491             the archive is always read to the very end, since there can be
492             multiple entries with the same name and, by convention, later
493             entries overwrite earlier entries.  This option is provided as a
494             performance optimization.
495
496     -S      (x mode only) Extract files as sparse files.  For every block on
497             disk, check first if it contains only NULL bytes and seek over it
498             otherwise.  This works similar to the conv=sparse option of dd.
499
500     -s pattern
501             Modify file or archive member names according to pattern.  The
502             pattern has the format /old/new/[ghHprRsS] where old is a basic
503             regular expression, new is the replacement string of the matched
504             part, and the optional trailing letters modify how the replace‐
505             ment is handled.  If old is not matched, the pattern is skipped.
506             Within new, ~ is substituted with the match, \1 to \9 with the
507             content of the corresponding captured group.  The optional trail‐
508             ing g specifies that matching should continue after the matched
509             part and stop on the first unmatched pattern.  The optional
510             trailing s specifies that the pattern applies to the value of
511             symbolic links.  The optional trailing p specifies that after a
512             successful substitution the original path name and the new path
513             name should be printed to standard error.  Optional trailing H,
514             R, or S characters suppress substitutions for hardlink targets,
515             regular filenames, or symlink targets, respectively.  Optional
516             trailing h, r, or s characters enable substitutions for hardlink
517             targets, regular filenames, or symlink targets, respectively.
518             The default is hrs which applies substitutions to all names.  In
519             particular, it is never necessary to specify h, r, or s.
520
521     --same-owner
522             (x mode only) Extract owner and group IDs.  This is the reverse
523             of --no-same-owner and the default behavior if bsdtar is run as
524             root.
525
526     --strip-components count
527             Remove the specified number of leading path elements.  Pathnames
528             with fewer elements will be silently skipped.  Note that the
529             pathname is edited after checking inclusion/exclusion patterns
530             but before security checks.
531
532     -T filename, --files-from filename
533             In x or t mode, bsdtar will read the list of names to be
534             extracted from filename.  In c mode, bsdtar will read names to be
535             archived from filename.  The special name “-C” on a line by
536             itself will cause the current directory to be changed to the
537             directory specified on the following line.  Names are terminated
538             by newlines unless --null is specified.  Note that --null also
539             disables the special handling of lines containing “-C”.  Note:
540             If you are generating lists of files using find(1), you probably
541             want to use -n as well.
542
543     --totals
544             (c, r, u modes only) After archiving all files, print a summary
545             to stderr.
546
547     -U, --unlink, --unlink-first
548             (x mode only) Unlink files before creating them.  This can be a
549             minor performance optimization if most files already exist, but
550             can make things slower if most files do not already exist.  This
551             flag also causes bsdtar to remove intervening directory symlinks
552             instead of reporting an error.  See the SECURITY section below
553             for more details.
554
555     --uid id
556             Use the provided user id number and ignore the user name from the
557             archive.  On create, if --uname is not also specified, the user
558             name will be set to match the user id.
559
560     --uname name
561             Use the provided user name.  On extract, this overrides the user
562             name in the archive; if the provided user name does not exist on
563             the system, it will be ignored and the user id (from the archive
564             or from the --uid option) will be used instead.  On create, this
565             sets the user name that will be stored in the archive; the name
566             is not verified against the system user database.
567
568     --use-compress-program program
569             Pipe the input (in x or t mode) or the output (in c mode) through
570             program instead of using the builtin compression support.
571
572     -v, --verbose
573             Produce verbose output.  In create and extract modes, bsdtar will
574             list each file name as it is read from or written to the archive.
575             In list mode, bsdtar will produce output similar to that of
576             ls(1).  An additional -v option will also provide ls-like details
577             in create and extract mode.
578
579     --version
580             Print version of bsdtar and libarchive, and exit.
581
582     -w, --confirmation, --interactive
583             Ask for confirmation for every action.
584
585     -X filename, --exclude-from filename
586             Read a list of exclusion patterns from the specified file.  See
587             --exclude for more information about the handling of exclusions.
588
589     --xattrs
590             (c, r, u, x modes only) Archive or extract extended file
591             attributes. This is the reverse of --no-xattrs and the default
592             behavior in c, r, and u modes or if bsdtar is run in x mode as
593             root.
594
595     -y      (c mode only) Compress the resulting archive with bzip2(1).  In
596             extract or list modes, this option is ignored.  Note that this
597             tar implementation recognizes bzip2 compression automatically
598             when reading archives.
599
600     -Z, --compress, --uncompress
601             (c mode only) Compress the resulting archive with compress(1).
602             In extract or list modes, this option is ignored.  Note that this
603             tar implementation recognizes compress compression automatically
604             when reading archives.
605
606     -z, --gunzip, --gzip
607             (c mode only) Compress the resulting archive with gzip(1).  In
608             extract or list modes, this option is ignored.  Note that this
609             tar implementation recognizes gzip compression automatically when
610             reading archives.
611

ENVIRONMENT

613     The following environment variables affect the execution of bsdtar:
614
615     TAR_READER_OPTIONS
616                The default options for format readers and compression read‐
617                ers.  The --options option overrides this.
618
619     TAR_WRITER_OPTIONS
620                The default options for format writers and compression writ‐
621                ers.  The --options option overrides this.
622
623     LANG       The locale to use.  See environ(7) for more information.
624
625     TAPE       The default device.  The -f option overrides this.  Please see
626                the description of the -f option above for more details.
627
628     TZ         The timezone to use when displaying dates.  See environ(7) for
629                more information.
630

EXIT STATUS

632     The bsdtar utility exits 0 on success, and >0 if an error occurs.
633

EXAMPLES

635     The following creates a new archive called file.tar.gz that contains two
636     files source.c and source.h:
637           bsdtar -czf file.tar.gz source.c source.h
638
639     To view a detailed table of contents for this archive:
640           bsdtar -tvf file.tar.gz
641
642     To extract all entries from the archive on the default tape drive:
643           bsdtar -x
644
645     To examine the contents of an ISO 9660 cdrom image:
646           bsdtar -tf image.iso
647
648     To move file hierarchies, invoke bsdtar as
649           bsdtar -cf - -C srcdir . | bsdtar -xpf - -C destdir
650     or more traditionally
651           cd srcdir ; bsdtar -cf - . | (cd destdir ; bsdtar -xpf -)
652
653     In create mode, the list of files and directories to be archived can also
654     include directory change instructions of the form -Cfoo/baz and archive
655     inclusions of the form @archive-file.  For example, the command line
656           bsdtar -c -f new.tar foo1 @old.tgz -C/tmp foo2
657     will create a new archive new.tar.  bsdtar will read the file foo1 from
658     the current directory and add it to the output archive.  It will then
659     read each entry from old.tgz and add those entries to the output archive.
660     Finally, it will switch to the /tmp directory and add foo2 to the output
661     archive.
662
663     An input file in mtree(5) format can be used to create an output archive
664     with arbitrary ownership, permissions, or names that differ from existing
665     data on disk:
666
667           $ cat input.mtree
668           #mtree
669           usr/bin uid=0 gid=0 mode=0755 type=dir
670           usr/bin/ls uid=0 gid=0 mode=0755 type=file content=myls
671           $ tar -cvf output.tar @input.mtree
672
673     The --newer and --newer-mtime switches accept a variety of common date
674     and time specifications, including “12 Mar 2005 7:14:29pm”, “2005-03-12
675     19:14”, “5 minutes ago”, and “19:14 PST May 1”.
676
677     The --options argument can be used to control various details of archive
678     generation or reading.  For example, you can generate mtree output which
679     only contains type, time, and uid keywords:
680           bsdtar -cf file.tar --format=mtree --options='!all,type,time,uid'
681           dir
682     or you can set the compression level used by gzip or xz compression:
683           bsdtar -czf file.tar --options='compression-level=9'.
684     For more details, see the explanation of the archive_read_set_options()
685     and archive_write_set_options() API calls that are described in
686     archive_read(3) and archive_write(3).
687

COMPATIBILITY

689     The bundled-arguments format is supported for compatibility with historic
690     implementations.  It consists of an initial word (with no leading - char‐
691     acter) in which each character indicates an option.  Arguments follow as
692     separate words.  The order of the arguments must match the order of the
693     corresponding characters in the bundled command word.  For example,
694           bsdtar tbf 32 file.tar
695     specifies three flags t, b, and f.  The b and f flags both require argu‐
696     ments, so there must be two additional items on the command line.  The 32
697     is the argument to the b flag, and file.tar is the argument to the f
698     flag.
699
700     The mode options c, r, t, u, and x and the options b, f, l, m, o, v, and
701     w comply with SUSv2.
702
703     For maximum portability, scripts that invoke tar should use the bundled-
704     argument format above, should limit themselves to the c, t, and x modes,
705     and the b, f, m, v, and w options.
706
707     Additional long options are provided to improve compatibility with other
708     tar implementations.
709

SECURITY

711     Certain security issues are common to many archiving programs, including
712     bsdtar.  In particular, carefully-crafted archives can request that
713     bsdtar extract files to locations outside of the target directory.  This
714     can potentially be used to cause unwitting users to overwrite files they
715     did not intend to overwrite.  If the archive is being extracted by the
716     superuser, any file on the system can potentially be overwritten.  There
717     are three ways this can happen.  Although bsdtar has mechanisms to pro‐
718     tect against each one, savvy users should be aware of the implications:
719
720     ·       Archive entries can have absolute pathnames.  By default, bsdtar
721             removes the leading / character from filenames before restoring
722             them to guard against this problem.
723
724     ·       Archive entries can have pathnames that include .. components.
725             By default, bsdtar will not extract files containing .. compo‐
726             nents in their pathname.
727
728     ·       Archive entries can exploit symbolic links to restore files to
729             other directories.  An archive can restore a symbolic link to
730             another directory, then use that link to restore a file into that
731             directory.  To guard against this, bsdtar checks each extracted
732             path for symlinks.  If the final path element is a symlink, it
733             will be removed and replaced with the archive entry.  If -U is
734             specified, any intermediate symlink will also be unconditionally
735             removed.  If neither -U nor -P is specified, bsdtar will refuse
736             to extract the entry.
737     To protect yourself, you should be wary of any archives that come from
738     untrusted sources.  You should examine the contents of an archive with
739           bsdtar -tf filename
740     before extraction.  You should use the -k option to ensure that bsdtar
741     will not overwrite any existing files or the -U option to remove any pre-
742     existing files.  You should generally not extract archives while running
743     with super-user privileges.  Note that the -P option to bsdtar disables
744     the security checks above and allows you to extract an archive while pre‐
745     serving any absolute pathnames, .. components, or symlinks to other
746     directories.
747

SEE ALSO

749     bzip2(1), compress(1), cpio(1), gzip(1), mt(1), pax(1), shar(1), xz(1),
750     libarchive(3), libarchive-formats(5), tar(5)
751

STANDARDS

753     There is no current POSIX standard for the tar command; it appeared in
754     ISO/IEC 9945-1:1996 (“POSIX.1”) but was dropped from IEEE Std 1003.1-2001
755     (“POSIX.1”).  The options supported by this implementation were developed
756     by surveying a number of existing tar implementations as well as the old
757     POSIX specification for tar and the current POSIX specification for pax.
758
759     The ustar and pax interchange file formats are defined by IEEE Std
760     1003.1-2001 (“POSIX.1”) for the pax command.
761

HISTORY

763     A tar command appeared in Seventh Edition Unix, which was released in
764     January, 1979.  There have been numerous other implementations, many of
765     which extended the file format.  John Gilmore's pdtar public-domain
766     implementation (circa November, 1987) was quite influential, and formed
767     the basis of GNU tar.  GNU tar was included as the standard system tar in
768     FreeBSD beginning with FreeBSD 1.0.
769
770     This is a complete re-implementation based on the libarchive(3) library.
771     It was first released with FreeBSD 5.4 in May, 2005.
772

BUGS

774     This program follows ISO/IEC 9945-1:1996 (“POSIX.1”) for the definition
775     of the -l option.  Note that GNU tar prior to version 1.15 treated -l as
776     a synonym for the --one-file-system option.
777
778     The -C dir option may differ from historic implementations.
779
780     All archive output is written in correctly-sized blocks, even if the out‐
781     put is being compressed.  Whether or not the last output block is padded
782     to a full block size varies depending on the format and the output
783     device.  For tar and cpio formats, the last block of output is padded to
784     a full block size if the output is being written to standard output or to
785     a character or block device such as a tape drive.  If the output is being
786     written to a regular file, the last block will not be padded.  Many com‐
787     pressors, including gzip(1) and bzip2(1), complain about the null padding
788     when decompressing an archive created by bsdtar, although they still
789     extract it correctly.
790
791     The compression and decompression is implemented internally, so there may
792     be insignificant differences between the compressed output generated by
793           bsdtar -czf - file
794     and that generated by
795           bsdtar -cf - file | gzip
796
797     The default should be to read and write archives to the standard I/O
798     paths, but tradition (and POSIX) dictates otherwise.
799
800     The r and u modes require that the archive be uncompressed and located in
801     a regular file on disk.  Other archives can be modified using c mode with
802     the @archive-file extension.
803
804     To archive a file called @foo or -foo you must specify it as ./@foo or
805     ./-foo, respectively.
806
807     In create mode, a leading ./ is always removed.  A leading / is stripped
808     unless the -P option is specified.
809
810     There needs to be better support for file selection on both create and
811     extract.
812
813     There is not yet any support for multi-volume archives.
814
815     Converting between dissimilar archive formats (such as tar and cpio)
816     using the @- convention can cause hard link information to be lost.
817     (This is a consequence of the incompatible ways that different archive
818     formats store hardlink information.)
819
820BSD                              June 3, 2019                              BSD
Impressum