Сжатие и архивация файлов с помощью Gzip, Zip и Tar

Сжатие с помощью Gzip и Zip

Сжатые файлы занимают меньше места на диске и загружаются из сети быстрее, чем большие, несжатые файлы. Вы можете сжать файлы Linux свободно распространяемыми утилитами сжатия Gzip или Zip, такой формат распознаётся большинством операционных систем.

По умолчанию, сжатые файлы получают расширение .gz. Команда Gzip создаёт сжатый файл с расширением .gz; Gunzip извлекает сжатые файлы и удаляет файл .gz.

Чтобы сжать файл, в приглашении оболочки введите следующая команду:

gzip filename.ext

Файл будет сжат и сохранён под именем filename.ext.gz.

Чтобы развернуть сжатый файл введите:

gunzip filename.ext.gz

Файл filename.ext.gz при этом удаляется и заменяется файлом filename.ext.

Если вы обмениваетесь файлам с пользователям не Linux, вероятно лучше использовать zip, чтобы избежать проблем совместимости. Red Hat Linux может легко открыть zip или gzip файлы, но не Linux операционные системы могут не справиться с файлами gzip.

Чтобы сжать файл с помощью zip, введите:

zip -r filename.zip files

В этом примере filename определяет имя создаваемого файла, а files определяет какие файлы вы хотите включить в архив:

Чтобы извлечь содержимое файла zip, введите:

unzip filename.zip

Вы можете сжать с помощью zip или gzip сразу несколько файлов. Перечислите имена файлов, разделив их пробелами.

gzip filename.gz file1 file2 file3 /user/work/school 

Приведённая выше команда сожмёт file1, file2, file3 и содержимое каталога /user/work/school и поместит их в файл filename.gz.

Архивация с помощью Tar

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

Чтобы создать файл tar, введите:

tar -cvf filename.tar files/directories

В этом примере filename.tar определяет имя создаваемого файла, а files/directories определяет какие файлы или каталоги вы хотите включить в новый архив.

Вы можете использовать абсолютные или относительные пути для этих файлов или каталогов (чтобы узнать больше о путях, обратитесь к разделу Смена каталогов с помощью cd в Главе 10). Разделите имена файлов и каталогов пробелами.

В показанном ниже примере показано создание файла с абсолютными путями:

	 tar -cvf foo.tar /home/mine/work /home/mine/school
      

Указанная выше команда поместит все файлы каталога /work и подкаталога /school в новый файл foo.tar в текущем рабочем каталоге.

Команда tar -cvf foo.tar file1.txt file2.txt file3.txt поместит файлы: file1.txt, file2.txt и file3.txt в новый файл foo.tar.

Чтобы просмотреть содержимое файла tar, введите:

	tar -tvf foo.tar

Чтобы извлечь содержимое файла tar, введите:

tar -xvf foo.tar

Эта команда не удаляет файл .tar, а извлекает содержимое .tar в текущий рабочий каталог.

Команда tar не автоматического выполняет сжатия файлов. Вы можете сжать файлы tar выполнив:

tar -czvf foo.tar

Сжатые файлы обычно имеют расширение .tgz и сжимаются при помощи gzip.

Чтобы развернуть сжатый файл tar введите:

tar -xzvf foo.tgz