Запасливый пингвин. Программы для резервного копирования в Linux

Как мне заархивировать папку в Linux? Как мне сжать каталог в Linux?

cpio — означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.

Опции утилиты:

  • -a — сбросить время обращения к файлам после их копирования
  • -A — добавить файл
  • -d — создать каталоги при необходимости

Пример использования. Создаем cpio архив:

file1.o file2.o file3.o

ls | cpio -ov > /path/to/output_folder/

Распаковываем архив:

cpio -idv < /path/to folder/

Архивирование папки linux выполняется также само.

Народные мудрости

На базе Linux любят разворачивать NAS- и FTP-серверы. Для таких систем неплохо бы иметь резервную копию как минимум конфигурации, а в идеале еще и данных. Не стану читать очередную лекцию, насколько важно озаботиться резервным копированием до того, как с основным носителем информации приключится беда. Но повторю одну притчу из айтишного фольклора: люди делятся на тех, кто делает бэкапы, и тех, кто их еще не делает. С основами создания резервных копий ты можешь ознакомиться, например, в упомянутой статье, а мы не будем тратить время на теорию и сразу перейдем к делу.

WARNING

В одной статье всех существующих решений для резервного копирования не обозреть, поэтому мы рассмотрели и сравнили наиболее известные из них. Если тут нет твоей любимой программы — не обессудь.

Самое что ни на есть хардкорное резервное копирование данных с носителей можно выполнить командой dd. И самое прикольное, что можно примонтировать получившийся образ и работать с ним как с обычным разделом в режиме чтения и записи. Никаких тебе DAEMON Tools или Alcohol для эмулирования дисковода…

Народные мудрости

Снимаем слепок устройства /dev/sdb1 и монтируем его

Подобные способы подкупают своей простотой и удобством создания резервной копии. К тому же не надо беспокоиться, что слетят права и прочие атрибуты файлов или испортятся символические ссылки. Еще можно примонтировать, например, и сразу закидывать бэкапы на него. Но это кажется удобным лишь до поры до времени, пока не требуется ставить создание бэкапов на поток, а нужно лишь снять образ с флешки или диска. Для более серьезных задач в Linux уже существует достаточное количество утилит, делающих процесс резервного копирования с последующим восстановлением почти таким же простым (ну, после некоторой подготовки), как в винде или в macOS, поэтому вместо изобретения еще одного велосипеда давай-ка лучше изучим готовые.

Распаковываем архивы формата ZIP в Linux

Далее мы затронем две свободных популярных утилиты, управление которыми осуществляется через консоль, то есть пользователю придется вводить встроенные и дополнительные команды для управления всеми файлами и инструментами. Примером сегодня выступит дистрибутив Ubuntu, а для обладателей других сборок мы сделаем акценты на каких-либо несовпадениях.

Отдельно хочется отметить, если вы заинтересованы в дальнейшей установке программы из архива, сначала проверьте, нет ли ее в официальных хранилищах или отдельных пакетах под ваш дистрибутив, ведь осуществить такую инсталляцию гораздо проще.

Способ 1: Unzip

Хоть в Ubuntu Unzip и является встроенной утилитой, позволяющей управлять архивами необходимого нам типа, однако в других сборках Линукс этот полезный инструмент может отсутствовать, поэтому давайте начнем с его установки, а потом уже разберемся с взаимодействием.

Что касается дополнительных аргументов, применяемых в утилите Unzip, то здесь следует отметить несколько самых важных:

  • -u — обновление существующих файлов в директории;
  • -v — отображение всей доступной информации об объекте;
  • -P — установка пароля для получения разрешения на распаковку архива (в случае наличия шифрования);
  • -n — не перезаписывать уже существующие файлы в месте распаковки;
  • -j — игнорирование структуры архива.

Как видите, ничего сложного в управлении утилитой под названием Unzip нет, но подходит она не всем пользователям, поэтому советуем ознакомиться со вторым методом, где будет применяться более распространенное решение.

Читайте также:  Загрузочная флешка Linux Live USB Creator

Способ 2: 7z

Многофункциональная утилита 7z по работе с архивами предназначена не только для взаимодействия с одноименным типом файлов, но и поддерживает другие популярные форматы, в том числе и ZIP. Для операционных систем на Linux тоже есть версия этого инструмента, поэтому предлагаем с ней ознакомиться.

  1. Откройте консоль и загрузите последнюю версию 7z с официального репозитория, введя команду sudo apt install p7zip-full, а обладателям Red Hat и CentOS потребуется указать sudo yum install p7zip.
  2. Подтвердите добавление новых файлов в систему, выбрав утвердительный вариант.
  3. Переместитесь в папку, где хранится архив, как это было показано в предыдущем способе с использованием команды cd. Здесь просмотрите содержимое объекта перед распаковкой, написав в консоли 7z l , где — название необходимого архива.
  4. Процесс распаковки в текущую папку осуществляется через 7z x
  5. Если какие-то файлы с таким же названием там уже присутствуют, их предложат заменить или пропустить. Выбирайте вариант, исходя из собственных предпочтений.

Как и в случае с Unzip, в 7z есть ряд своих дополнительных аргументов, советуем тоже ознакомиться с основными из них:

  • e — извлечение файлов с указанием пути (при использовании x путь сохраняется прежний);
  • t — проверка архива на целостность;
  • -p — указание пароля от архива;
  • -x + перечень файлов — не распаковывать заданные объекты;
  • -y — положительные ответы на все поставленные вопросы во время распаковки.

Синтаксис UNZIP

Давайте рассмотрим синтаксис утилиты unzip:

unzip опции файл_ файлы -x исключить -d папка

  • файл архива – это тот файл, с которым нам предстоит работать;
  • файлы – здесь вы можете указать файлы, которые нужно извлечь, разделять имена файлов пробелом;
  • исключить – файлы, которые извлекать не нужно;
  • папка – папка, в которую будет распакован архив.

Теперь рассмотрим опции утилиты, поскольку она позволяет не только распаковывать архивы, но и выполнять с ними определённые действия:

  • -l – вывести список файлов в архиве;
  • -t – протестировать файл архива на ошибки;
  • -u – обновить существующие файлы на диске;
  • -z – вывести комментарий к архиву;
  • -c – извлекать файлы на стандартный вывод, перед каждым файлом будет выводиться его имя;
  • -p – то же самое, только имя выводится не будет;
  • -f – извлечь только те файлы, которые уже существуют на диске, и файлы в архиве более новые;
  • -v – вывести всю доступную информацию;
  • -P – указать пароль для расшифровки архива;
  • -n – не перезаписывать существующие файлы;
  • -j – игнорировать структуру архива и распаковать всё в текущую папку;
  • -q – выводить минимум информации.

Все самые основные опции рассмотрели, теперь давайте перейдём к практике.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

C навигацией разобрались, теперь научимся создавать, удалять, копировать, перемещать файлы и директории (каталоги) в терминале Linux.

Комментирование приветствуется.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Создание файлов и директорий в терминале Linux

Текстовый файл в терминале Linux можно создать тремя способами.

1. С помощью команды touch:

Вводим команду touch, затем путь и название нового файла.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

touch /путь/к/файлу/название_файла

Например, создадим текстовый файл в текущей директории с именем :

2. С помощью перенаправления стандартного потока вывода любой команды

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
  • Создать файл можно также перенаправлением вывода любой команды в файл.
  • В общем виде команда будет следующей:

какая_нибудь_команда > /путь/к/файлу/наименование_файла

  1. То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
  2. Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
  3. Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:

3. С помощью любого текстового редактора, консольного или с графическим интерфейсом

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Передаем команду запуска любого текстового редактора и путь к файлу.
  • Самый простой консольный текстовый редактор это nano:
  • Или с помощью текстового редактора с графическим интерфейсом, который установлен в Gnome по умолчанию:
  • Про манипуляции с текстом более подробно в одной из следующих статей о терминале Linux.

Создание директорий (каталогов) в терминале Linux

  1. Создание каталогов выполняется командой «mkdir» (от англ. make directory):
  2. Создать директорию с именем «dir1»:
  3. Создать две директории одновременно:
  4. Создать дерево директорий:

Удаление файлов и директорий в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления директорий используется команда «rmdir» (от англ. remove directory):

Читайте также:  Как узнать установлен ли NGINX на сервере

Удаляются директории аналогично, как и создаются. Такие же команды.

Удаление файлов в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления файлов используется команда «rm» (от англ. remove).

  • Работает очень просто, пишете команду rm и путь к файлу, который хотите удалить:
  • Удалить файл с именем «file1»:

Но команда «rm» позволяет удалять не только файлы, но и директории (каталоги) вместе с их содержимым.

  1. Удалить директорию с именем «dir1» и рекурсивно всё её содержимое:
  2. Удалить две директории и рекурсивно их содержимое:
  3. Также можно добавить параметр -f, который означает, что при удалении не будет запрашиваться подтверждение на удаление. Команды будут выглядеть так:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Перемещение и переименование файлов и директорий в терминале Linux

Для перемещения и переименовывания файлов и директорий (каталогов) используется команда «mv» (от англ. move).

Всё очень просто. Чтобы переименовать файл, выполняем команду:

mv название_файла новое_название

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Чтобы переместить файл:

Копирование файлов и директорий в терминале Linux

Для копирования используется команда «cp» (от англ. copy).

  1. Скопировать файл file1 и назвать его file2:
  2. Копировать директорию dir1 в директорию dir2:
  3. Копировать файл с именем file1 в директорию c именем dir1:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Справка о командах

  • У каждой команды присутствует множество параметров, чтобы узнать их, просто наберите команду и параметр —help:
  • Например:

Регистр имен

Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы и будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.

Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:

Регистр имен

Стандарт иерархии файловой системы

  • / — root каталог. Содержит в себе всю иерархию системы;
  • /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
  • /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
  • /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
  • /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
  • /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
  • /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
  • /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
  • /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
  • /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
  • /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
  • /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
  • /root — директория, которая содержит файлы и личные настройки суперпользователя;
  • /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
  • /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
  • /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
  • /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
  • /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
  • /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
  • /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.

Как разархивировать .ZIP файл в Unix без использования unzip cmd .. ?????

Еще 10 дискуссий, которые могут вас заинтересовать

1. Программирование оболочки и сценарии

У меня есть файл .zip, я хочу перечислить все файлы, заархивированные в zip-файле. У меня unzip утилита не работает в unix. Пожалуйста, помогите мне решить эту проблему Благодарность ганеш. (3 ответов)

Обсуждение началось: Ganesh L

3 ответов

и сценарии оболочки

Привет, home / user01 содержит мне нужно извлечь это по тому же пути. нужна команда unix Спасибо (2 ответа)

Читайте также:  Как установить iOS 11 на айфон 5 и 5S или iPad

Обсуждение начато: aish21

2 ответов

3. Программирование оболочки и сценарии

Привет, Мне нужно заархивировать / сжать файл данных и отправить поставщику. У поставщика есть только утилита для распаковки, и он может принимать только файлы .ZIP. На моем сервере нет утилиты заархивировать / сжать файл, чтобы его можно было выкачать с помощью команды unzip? Я пробовал команды gzip и compress, но … (1 ответ)

Обсуждение началось: Sabari Nath S

1 ответов

4. Программирование оболочки и сценарии

Привет друзья! У меня есть файл .zip, в котором есть 6 файлов PDF. У меня есть ftp-файл .zip в unix, и я пытаюсь распаковать / распаковать файл. Не могли бы вы помочь с правильной командой. Спасибо (7 ответов)

Обсуждение начато: techmoris

7 ответов

для продвинутых и опытных пользователей

У меня в Linux есть ZIP-файл размером 17 ГБ. Насколько мне известно, разархивирование (до версии 6. X) не работает с размером файла более 4 ГБ. Я изо всех сил пытался распаковать его, но безуспешно. Кто-нибудь может мне с этим помочь? Любая помощь будет оценена. Спасибо. С Уважением, Chandu (2 ответов)

Обсуждение начато: random04

2 ответов

6. UNIX для чайников. Вопросы и ответы

Здравствуйте, Я пытаюсь вернуть имя полученного файла из с помощью команды unzip unzip. разархивировать Архив: SecureZIP для z / OS от PKWARE надувание: CEP / CEM7080 / PPVBILL / PASS / G0063V00 Я использовал следующую команду, чтобы распаковать в … (5 ответов)

Обсуждение началось: oracledev

5 ответов

7. HP-UX

Привет всем Я скопировал файл .ZIP (заархивированный с помощью WinZip в Windows) на свой сервер Unix (HP-UX). У меня нет unzip cmd, доступного в моей текущей версии Unix Пожалуйста, дайте мне знать любой cmd в UNIX (кроме unzip), с помощью которого я могу это распаковать. ZIP-файл. Расскажите подробнее о командах aval и … (5 ответов)

Обсуждение начато: sureshg_sampat

5 ответов

8. UNIX для продвинутых и опытных пользователей

распакованного пакета нет. (2 ответов)

Обсуждение начато: yogesh_powar

2 ответов

9. UNIX для чайников. Вопросы и ответы

как выполнить zip или распаковать для большого количества файлов на консоли unix кто-нибудь может сказать эту команду (2 ответа)

Обсуждение началось: lmraochodisetti

2 ответов

для чайников Вопросы и ответы

привет всем, у меня глупый вопрос … как распаковать zip файл ?? у него есть расширение .zip … Благодарность xNYx (4 ответов)

Обсуждение начато: xNYx

4 ответов

Компиляция

Теперь осталось скомпилировать подготовленную конфигурацию. Выполняется это простой командой make в этом же каталоге распакованного архива. Если вывод не содержит ошибок, то значит, компиляция прошла успешно, теперь осталось понять, как установить программу из в систему. Для этого применяется команда make install. Если она также не содержит ошибок, то значит, все инсталлировалось в систему, и её можно использовать. Но перед этим стоит учесть, что, если был указан домашний каталог в качестве пути установки, то нужно добавить его в переменную окружения PATH следующим образом:

Теперь скомпилированную и установленную в систему программу можно запустить из любого каталога простым вызовом hello.

Компиляция

На самом деле установить именно эту программу можно было и простым вызовом apt-get install hello в Ubuntu, так как она содержится в его репозиториях. Но главным посылом статьи было рассказать, как установить архив Поэтому, программа hello выступила здесь своего рода подопытным кроликом. Он просто показал, как установить пакет Мы узнали также, как распаковать его, скомпилировать и запустить в системе.

Как обстоят дела в «Линуксе»?

До недавнего времени все было непросто, так как практически все программы архивации работали исключительно в консольном режиме, а потому совладать с ними могли далеко не все пользователи. К счастью, на сегодняшний день ситуация поменялась в лучшую сторону. Чтобы в Linux заархивировать папку, следует воспользоваться соответствующей утилитой.

Для примера расскажем об Ubuntu, которая в этом плане не слишком отличается от ОС «Виндовс». Щелкаете по нужной вам папке ПКМ (правой кнопкой мышки), после чего выбираете в выскочившем меню всю ту же команду «Добавить к архиву».

Вот только с чтением готовых архивов от WinRar в «Убунту» могут быть некоторые проблемы. Дело в том, что по умолчанию эта операционная система в своем составе не содержит проприетарных форматов файлов, так что их следует добавить отдельно. Сделать это просто: открываете «Магазин приложений», а в поле поиска вводите слово rar. Система автоматически отыщет необходимый пакет.

От вас потребуется только подтвердить установку, введя root-пароль и нажав на «ОК».