Архивация файлов и каталогов из консоли

Категория: Linux

Рабочие примеры архивации (сжатия) файлов и распаковки архивов из 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

категория: Linux