Содержание
Архивирование в 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
Обсуждение