Tar

tar cvfz - /somedir/* |ssh user@backuphost "cat > /backupdir/backup.tgz"

Создание рекурсивно
Поместить в один файл (без сжатия) изображения из директории 100NIKON tar -cvf photos.tar 100NIKON/  a 100NIKON a 100NIKON/DSCN6046.JPG a 100NIKON/DSCN6051.JPG 

Содержимое директории /usr/home поместить в tar и сжать gzip. (еще можно расширение tgz использовать в данном случае) cd /usr/home tar -czvf /mnt/home.tar.gz leksey

Чтобы записать полный путь до файлов необходимо указывать пусть с использованием -С. По умолчанию в tar будет только leksey, а если указать с -С, то usr/local/leksey будет. Первый слеш все равно уберется.

Наоборот, с параметрами по умолчанию хранится по полному пути.

Степень копрессии указать --options gzip:compression-level=9

Создание только на основе конкретных файлов
Не помещать в таршарик определенный файл --exclude=AIR_.mov

Несколько файлов из текущей директории, tarball будет создан в явно указанном месте: tar -cvf /tmp/torrents/tt_part1.tar P1020662.MOV P1020663.MOV P1020664.MOV Создать tarball, содержащий только файлы с расширением JPG tar -cvf piter2009-leksey.tar `find /sd23062009/ -name "*JPG"` Либо tar -c -f new.tar --include='*foo*' @old.tgz Предварительно извлечь из tar-файла leksey.tar и поместить в файл extracted.tar tar -c -f extracted.tar --include='*MOV*' @leksey.tar

Распаковать
Распаковать весь файл в директорию /tmp/downloads/ (по умолчанию в текущую директорию). То что архив запакован, он сам определит, ключ не надо использовать. tar -xvf photos.tar -C /tmp/downloads/

Конкретный файл tar -xvf leksey.tar --include='*DSCN6963.JPG*'

Отдельную директорию tar -xvf leksey.tar --include='*102NIKON*'

Опустить конкретный файл tar zxvf bla.tar.gz --exclude=bla1

Просмотреть содержимое
tar -tvf extracted.tar -rwxr-xr-x 0 lke    lke   5549595 23 июн 00:51 sd23062009/100NIKON/DSCN6963.JPG

Посмотреть конкретный файл tar -tvf www-101113-0243.tar | grep AIR

Права
-p     (x mode only) Preserve file permissions. Attempt to restore the full permissions, including owner, file modes, file flags and ACLs, if available, for each item extracted from the archive. By            default, newly-created files are owned by the user running tar, the file mode is restored for newly-created regular files, and all other types of entries receive default permissions. If tar is being run by root, the default is to restore the owner unless the -o option is also specified.

Удаление
Такое только в Линуксе. Во FreeBSD этого нет. Либо надо ставить расширенную (?) версию tar. tar --delete -f foo.tar etc/resolv.conf

Does it have to be tar option? Most probably --remove-files is gnu extension (or whatever), so you'd probably be able to just install this 'extended' version of tar on FreeBSD and use it.

If you cannot/don't want to, I think this would do:

tar -jvcPf $DIR/$Y/$M/$D/mysql-$HOUR.tar.bz2 *.sql | xargs rm

xargs rm doesnt works, it leaves the files without removing them. – Scott Nov 17 '12 at 17:30 try adding -f option: ... | xargs rm -f –

Рекомендация
To protect yourself, you should be wary of any archives that come from untrusted sources. You should examine the contents of an archive with tar -tf filename before extraction. You should use the -k option to ensure that tar will not overwrite any existing files or the -U option to remove any pre- existing files. You should generally not extract archives while running with super-user privileges. Note that the -P option to tar disables the security checks above and allows you to extract an archive while preserv- ing any absolute pathnames, .. components, or symlinks to other directo- ries.

Ошибки
Если не использовать ключ -C для указания пути к помещаемым в tar объектов в том ситуации, когда путь к ним указан абсолютный, например, tar -cf tared.tar /usr/local/www "tar: Removing leading '/' from member names"

Относительный путь будет сохранен внутри tar. Также при распаковке используются относительные пути. В случае использования абсолютных распаковка /etc с одного сервера на другом перезатерла новыми данными текущий /etc.

tar: share_copy.tar: Cannot stat: No such file or directory tar: Removing leading '/' from member names tar: /usr/share/skel/dot.mail_aliases: could not open file: Permission denied tar: /usr/share/skel/dot.rhosts: could not open file: Permission denied tar: Error exit delayed from previous errors.
 * Нехватка прав
 * 1) tar -xfv share_copy.tar /usr/share/

невозможность изменить время
При распаковке tar при наличии прав Can't update time for system/scaffolding/images tar: Error exit delayed from previous errors.

Видимо, о времени модификации речь. В сам tar дата записывается.

Если запускать с -m, то перестанет выводить.

Смысл в том что при первой распакове mtime выставляется на основе того что выставлено в tar,а при последующем уже текущее время.

Тома Volume
В версии FreeBSD Нет поддержки томов. В линуксе есть

-M, --multi-volume create/list/extract multi-volume archive

-L, --tape-length NUMBER change tape after writing NUMBER x 1024 bytes

tar -c -M -L=4505600 --file=part1.tar largefile.tar.gz It will stop after creating the first part and ask you: Prepare volume #2 for part1.tar and hit return:

Сборка в один файл tar -x -M --file=part1.tar largefile.tar.gz Prepare volume #2 for part1.tar and hit return: n part2.tar Prepare volume #2 for part2.tar and hit return: