Создать архив с помощью команды "gzip"

Создать архив с помощью команды "gzip"

Мне нужно создать архив с помощью команды gzip (не tar - это необходимо), и архив должен содержать файлы из другого каталога - например, /etc. Я пробовал использовать команду

gzip myetc.gz /etc

Но это не сработало.

решение1

gzipработает с файлами, а не с каталогами. Поэтому для создания архива каталога вам нужно использовать tar(что создаст один tarball из нескольких файлов):

tar cvf myetc.tar /etc

или, для архива gzip:

tar cvzf myetc.tar.gz /etc

решение2

Gzip работает только с одним файлом или потоком — данные передаются в gzip. Поэтому сначала нужно сгенерировать один файл, как с помощью tar, а затем можно сжать его gzip. Другой вариант — сжать все отдельные файлы gzip, а затем сжать их в один файл tar.

Оба эти решения глупы и не должны использоваться. Вам следует использовать tar со встроенной опцией сжатия и сделать все это одной командой.

решение3

Если у вас действительно нет tar, вы можете использовать gzip для создания резервной копии каталога с помощью опции (-r — рекурсивно), но, возможно, это не совсем то, что вы ожидаете...

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

#cp -a directory my_gzip_alone_backup

Во-вторых, вы рекурсивно сожмете все файлы в каталоге (-r).

#gzip -r my_gzip_alone_backup

Теперь давайте заглянем внутрь my-gzip-alone-backup. У вас не будет одного файла myfile.gz, как вы ожидаете, а будет много рекурсивно сжатых gzip файлов. Но делать это с etc нехорошо из-за символических ссылок...

Для распаковки каталога можно применить ту же логику с помощью gunzip.

Другой способ — преобразовать каталог в один файл, если у вас нет tar для этого, но есть утилита dd, как показано в этом посте:https://askubuntu.com/questions/626634/преобразование-файла-в-каталог

Связанный контент