Архивация файлов и каталогов из консоли
Рабочие примеры архивации (сжатия) файлов и распаковки архивов из Linux консоли.
gzip
Сжимает только файлы. Для архивации каталога используйте tar.
сжатие
Сжать stdout в файл:
echo "STDOUT" | gzip --best > file.gz
Компрессия файла с сохранением в новый архив (используем перенаправление потоков):
gzip --best < ./file.txt > file.gz
Упаковать (сжать) файл с заменой:
gzip file.txt
декомпрессия
Распаковать файл в stdout
(-c
направит в stdout
):
gzip -d -c file.gz | echo -
echo - <<< $(gunzip -c file.gz)
tar.gz (tgz)
архивация
Архивация каталога:
tar -zcvf archive.tar.gz directory/
Упаковать файлы и каталоги в архив с сохранением прав доступа (владельцем станете вы):
tar -cvpzf archive.tar.gz /some-file /some-dir
извлечение
Распаковать файлы и каталоги:
tar -xpvzf archive.tar.gz
# или
zcat archive.tar.gz | tar -xpvz
tar.xz
извлечение
tar xf archive.tar.xz
ZIP
архивация
Упаковать все файлы и каталоги в zip архив:
zip -r -9 -q archive.zip file1.php file2.js folder_name
zip -r -9 -q archive.zip dir_name
Для архивации только вложенных файлов в каталог (без самого родительского каталога) и исключая файлы .git и каталог node_modules/:
cd dir && zip -r9 archive.zip . -x *.git* node_modules/\*
извлечение
Распаковать zip архив в указанный каталог с перезаписью файлов:
unzip -o archive.zip -d path/to
RAR
Распаковать RAR архив:
unrar x archive.rar
#archive, #compres file or directory, #gzip, #tar, #zip, #rar