[ @console @archive @zip @tar ]
Запаковать файлы
zip archivename.zip filename1 filename2 filename3
Чтобы не выводить лог на экран, нужен параметр “-q”:
zip -q archivename.zip filename1 filename2 filename3
Запаковать каталог
zip -r archivename.zip directory_name
Можно комбинировать упаковку нескольких определенных каталогов и файлов по-отдельности:
zip -r archivename.zip directory_name1 directory_name2 file1 file1
Настроить уровень сжатия
По-умолчанию уровень сжатия “-6”. 0 = без компрессии. 9 = наиплотнейше (от этого процессор будет дольше и сильнее пыхтеть).
zip -9 -r archivename.zip directory_name
Алгоритм сжатия (надо знать заранее) выбирают через параметр “-Z”:
zip -r -Z bzip2 archivename.zip directory_name
Запаролить архив
zip -e archivename.zip directory_name
Разорвать архив на маленькие файлы
Если файла на пять гигов, а надо разбить их на одногиговые, то:
zip -s 1g -r archivename.zip directory_name
Появятся последовательно названные файлы:
- archivename.zip
- archivename.z01
- archivename.z02
- archivename.z03
- archivename.z04
Распаковать
unzip archivename.zip
Если в архиве есть другие zip-файлы, то распаковать вообще всё:
unzip -W \*.zip
Мелочи
Собрать в архив все mp3 из текущего каталога и установить сжатие ”0”:
zip -0 archivename *.mp3
Упаковать все файлы в каталоге:
zip archivename *
Упаковать все скрытые файлы в каталоге:
zip archivename .* *
tar.gz
В Linux с доисторических времен существует формат для архивирования tar (англ. tape archive). Первоначально программа tar использовалась для создания архивов на магнитной ленте, а в настоящее время tar используется для хранения нескольких файлов внутри одного файла для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы. В tar-архив записывается информация о структуре каталогов, о владельце и группе отдельных файлов, а также временны́е метки файлов.
Как и другие утилиты Unix, tar — специализированная программа, которая следует философии Unix «делать только одну вещь» (в данном случае — работать с архивами формата tar), «но делать её хорошо». Поэтому tar не создаёт сжатых архивов, а использует для сжатия внешние утилиты, такие, как gzip и bzip2. Поэтому у файлов с tar-архивами всегда двойные расширения — .tar.gz или .tgz — это указание на то, что для компрессии был применен gzip
Создать tar-архив
tar -czvf archive-name.tar.gz file-name
-z — использовать компрессию gzip
-v — выводить на экран весь список архивируемых файлов
-f — назвать новый файл… (в данном случае —“archive-name.tar.gz”)
file-name — список одного или множества файлов и/или каталогов, которые войдут в новый архив
Ту же команду можно представить более наглядно:
tar --create --gzip --verbose --file archive-name.tar.gz file-name
Каталоги по своей сути тоже являются файлами, поэтому tar не нужно знать, что ему предлагают упаковать, файл или каталог.
Обычно все используют только “-czf”.
Создать архив в определенном каталоге:
tar -czvf /home/user/archive.tar.gz file1 file2
Создать архив из каталога который находится в другом месте:
tar -czvf my_website.tar.gz /var/www/mywebsite
Создать архив (без компрессии) и закинуть его по ssh на удалённый компьютер:
tar cvf - project | ssh user@ip_addr "tar xv -C /var/www"
Распаковать tar-архив
tar -xvf archive.tar.gz
Распаковать в другой каталог:
tar -xvf archive.tar.gz -C /home/linuxize/files
Вытащить из архива определенный файл:
tar -xf archive.tar.gz file1.txt
Вытащить из архива определенный каталог:
tar -xf archive.tar.gz dir1
Вытащить из архива только mp3-файлы:
tar -xvf archive.tar.gz --wildcards '*.mp3'
Посмотреть содержимое tar-архива:
tar -tf archive.tar.gz
file2
file3