Часто при работе в консоли linux приходится создавать архивы, или наоборот распаковывать их. Эта статья — шпаргалка основных команд, используемых при работе с основными архиваторами.

Как создать или распаковать архивы tar, tar.gz, tar.bz2 в консоли Linux

Опции tar:

  • c — создание нового архива (сокращение от create)
  • v — выдача дополнительных сообщений в процессе работы программы
  • f — создание файла на диске.
  • z — использовать для сжатия GZip
  • j — использовать для сжатия BZip2
  • x — распаковать архив
Упаковка в архив файлов или папок
Упаковать файл или папку в архив tar
tar -cvf archive.tar file

С папкой всё аналогично:

tar -cvf archive.tar folder

Можно упаковать сразу несколько папок или файлов:

tar -cvf archive.tar file folder

Можно указать пути к папкам, или файлам, а также путь к файлу архива.

Обратите внимание, что в этом случае нужно добавить опцию -C, а далее слэш / с обоих сторон, отделённый пробелами. При этом путь к папке, которую архивируем, уже указываем без слэша в начале.

Без этой опции тоже будет работать, но tar постоянно будет ругаться вот так: tar: Removing leading `/’ from member names

tar -cvf /home/archive.tar -C / home/folder

При необходимости, можно исключить файлы или папки из архива. Например вот так, в архив не попадут все файлы из папок folder1 и folder3, при этом сами эти папки в архив попадут пустыми:

tar -cvf archive.tar folder --exclude={'*/folder1/*','*/folder2/*'}

А вот так, в архив не попадут и сами папки:

tar -cvf archive.tar folder --exclude={'*/folder1','*/folder2'}

Можно указывать полный путь к папке, которую нужно исключить:

tar -cvf archive.tar folder --exclude='folder/folder1'

Можно —exclude указывать несколько раз:

tar -cvf archive.tar folder --exclude='folder/folder1' --exclude='folder/folder2'

Можно исключить файлы или папки по маске:

tar -cvf archive.tar folder --exclude='sess_*'

Упаковать папку в архив и сразу отправить на удалённый сервер по ssh:

tar -cvf - folder | ssh root@192.168.1.1 "cat > /backup/archive.tar"
Упаковать файл или папку в архив tar.gz

Здесь всё те же команды, что и просто с tar, которые приведены выше, только добавляем в начале опцию z и имя создаваемого архива указываем с расширением .tar.gz:

tar -zcvf archive.tar.gz folder
Упаковать файл или папку в архив tar.bz2

Опять, всё тоже самое, что и в случаях выше, только уже указываем опцию j, и имя создаваемого архива указываем с расширением tar.bz2:

tar -jcvf archive.tar.bz2 folder
Как посмотреть содержимое архива

Всё просто, используем опцию t. Работает и с простыми архивами tar, и со сжатыми в tar.gz или  tar.bz2:

tar -tf archive.tar
Как распаковать архивы tar, tar.gz, tar.bz2
Распаковать архив tar
tar -xvf archive.tar

Распаковать архив tar в определённую папку:

tar -xvf archive.tar -C /home/
Распаковать архив tar.gz
tar -xzvf archive.tar.gz

Распаковать архив tar.gz в определённую папку:

tar -xzvf archive.tar.gz -C /home/
Распаковать архив tar.bz2
tar -xjvf archive.tar.bz2

Распаковать архив tar.bz2 в определённую папку:

tar -xjvf archive.tar.bz2 -C /home/

Как создать или распаковать архивы zip в консоли Linux

Упаковка в архив файлов или папок
Упаковать файл в архив zip
zip archive.zip file
Упаковать папку в архив zip

При архивировании папки нужно добавить опцию -r, иначе в архив не попадут вложенные в папку другие папки и файлы:

zip -r archive.zip folder
Как распаковать архивы zip
unzip archive.zip

Если нужно распаковать архив zip в определённую папку, то нужно добавить опцию -d

unzip -d folder archive.zip

Нужна профессиональная удалённая помощь с сервером, сайтом, компьютером или ноутбуком?

Свяжитесь со мной любым удобным для вас способом, и получите её быстро и не дорого.

Обсудить задачу

Помогла статья? Поблагодари автора!

Остались вопросы, или есть что добавить? Добро пожаловать в комментарии.

Угостить автора чашечкой кофе