RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:archive

Архивирование в Linux

tar, tar.gz, tar.bz2

  • TAR (файл *.tar) - архив без сжатия
  • TAR GZIP - (файл *.tar.gz) - tar архив, сжатый с помощью gzip
  • TAR BZIP2 (файл *.tar.bz2) - tar архив, сжатый с помощью bzip2

Опции

Опции Описание
-c cоздать архив
-C путь для извлечения
-x извлечь файлы из архива
-v выводить список обрабатываемых файлов
-f указать имя архива или TAR файла
-t содержимое архива
-z извлечь содержимое, сжатое с помощью программы gzip (tar.gz)
-j извлечь содержимое, сжатое с помощью программы bzip2 (tar.bz2)

Создать

$ tar zcvf foo.tar.gz /path/to/archive

Распаковать

Извлечь содержимое архива tar, tar.gz, tar.bz2

$ tar -xvf foo.tar (-C /path/to/destination)
$ tar -xvfz foo.tar.gz (-C /path/to/destination)
$ tar -xvfj foo.tar.bz2 (-C /path/to/destination)

Посмотреть содержимое архива tar, tar.gz, tar.bz2

$ tar -tvf foo.tar
$ tar -tvfz foo.tar
$ tar -tvfj foo.tar

Извлечь один файл из архива

$ tar -xvf foo.tar bar.txt
$ tar -xvfz foo.tar.gz bar.txt
$ tar -xvfj foo.tar.bz2 bar.txt

Извлечь один каталог из архива

$ tar -xvf foo.tar docs
$ tar -xvfz foo.tar.gz docs
$ tar -xvfj foo.tar.bz2 docs

zip

Распаковать

$ unzip archive.zip (-d /path/to/destination)
  • d: exdir

rar

Распаковать

$ unrar e/x archive.rar
  • e: extract files to current directory
  • x: extract files with full path

7z

Распаковать

$ 7z e/x archive.7z
  • e: extract files from archive (without using directory names)
  • x: extract files with full path

xz

Распаковать

$ unxz archive.xz

или

$ xz --decompress archive.xz

Шифруем tar.gz архивы

Зашифровать

tar cfz - important_backups | openssl enc -aes-256-cbc -e > important_backups_encrypted.tar.gz

Расшифровать

openssl enc -in important_backups_encrypted.tar.gz -aes-256-cbc -d | tar -zxvf -

Ошибка bad decrypt

enter aes-256-cbc decryption password: bad decrypt
Why do I get errors when trying to decrypt 1.0.2 data with 1.1.0?

A message digest is used to create the encrypt/decrypt key from a human-entered passphrase. In OpenSSL 1.1.0 we changed from MD5 to SHA-256. We did this as part of an overall change to move away from the now-insecure and broken MD5 algorithm. If you have old files, use the "-md md5" flag to decrypt them.

777 на всех файлах

Все файлы и каталоги после распаковки tar.gz архива под root'ом (tar -xvzf file.tar.gz) созданного в Windows через 7zip имеют права 777 вместо привычных 755 для каталогов и 644 для файлов.

Ошибки здесь никакой нет. Windows не наследует права на файлы и каталоги.

Чтобы исправить права

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Но что делать если архив был создан в Linux?

Надо читать man'ы. Хотя бы когда что-то не работает.

[...]
     -p, --preserve-permissions, --same-permissions
           extract information about file permissions (default for superuser)
[...]
     --no-same-permissions
           apply the user's umask when extracting permissions from the archive
           (default for ordinary users)

Почему же так происходит?

Если вы запускаете tar, как обычный пользователь, то будет применяться ваш umask по-умолчанию. Если вы запускаете tar как root, то следует добавить ключ –no-same-permissions, чтобы tar использовал umask.

Пользователь (umask 022. 777-22=755 каталоги, 666-22=644 файлы).

tar zxvf file.tar.gz --no-same-permissions

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/archive.txt · Последнее изменение: 2020/12/17 23:23 — 127.0.0.1