Извлечение файлов из архива
Теперь, когда мы знаем, как создавать архивы и просматривать их содержимое, давайте научимся извлекать файлы из архива. Это полезно, когда вам нужно восстановить файлы из резервной копии или когда вы получаете архив от другого человека.
Для демонстрации этого сначала имитируем ситуацию, когда наша исходная структура каталогов потеряна. Мы удалим каталог document_library
:
rm -rf ~/project/document_library
Команда rm
удаляет файлы и каталоги, а опции -rf
сообщают ей работать рекурсивно и принудительно удалять без запроса подтверждения. Будьте осторожны при использовании этой команды в реальных сценариях, так как она безвозвратно удаляет файлы.
Убедимся, что каталог удален:
ls -la ~/project
В списке не должно быть document_library
, но файл documents_archive.tar.gz
должен остаться.
Теперь извлечем архив, чтобы восстановить наши файлы. Базовый синтаксис извлечения с помощью tar
выглядит так:
tar [опции] [имя_архива]
Общие опции извлечения включают:
-x
: Извлечь файлы из архива
-z
: Распаковать с использованием gzip
-v
: Режим подробного вывода (показать ход выполнения)
-f
: Указать имя файла архива
-C
: Перейти в указанный каталог перед извлечением
Извлечем наш архив:
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project
В этой команде:
-x
сообщает tar
извлечь файлы
-z
сообщает tar
распаковать сжатый с помощью gzip архив
-v
включает режим подробного вывода, показывая извлекаемые файлы
-f ~/project/documents_archive.tar.gz
указывает файл архива
-C ~/project
сообщает tar
извлечь файлы в каталог ~/project
Вы должны увидеть вывод, в котором перечислены все извлекаемые файлы, похожий на то, что вы видели при создании архива.
Убедимся, что наша структура каталогов восстановлена:
ls -R ~/project/document_library
Вы должны увидеть ту же структуру каталогов и файлы, которые мы изначально создали:
/home/labex/project/document_library:
references reports specifications
/home/labex/project/document_library/references:
guide.txt handbook.txt manual.txt
/home/labex/project/document_library/reports:
annual.txt monthly.txt quarterly.txt
/home/labex/project/document_library/specifications:
product.txt service.txt system.txt
Если вы хотите извлечь только определенные файлы из архива, вы можете указать их пути после имени архива. Например, чтобы извлечь только каталог reports
:
mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports
Это извлечет только каталог reports
и его содержимое в каталог extracted_reports
.
Поздравляем! Вы успешно научились извлекать файлы из архива с помощью команды tar
. Этот навык важен для восстановления резервных копий, установки программ из исходных кодов и многих других операций в Linux.