6

У меня есть каталог gzipped "new", который содержит другие каталоги и файлы, которые я сжал следующим образом

gzip -cvr --no-name /path-to-directory/new > new.gz

Я скопировал это> 700 МБ в другое место (на другом сервере) и теперь хотел бы распаковать его. Итак, на новом сервере я иду в каталог, в котором есть "новый" и я использую

gzip new

В результате получается один файл размером 880 МБ - без каталогов или небольших файлов.

Что я сделал не так и как я могу это исправить?

Благодарю.

3 ответа3

16

Gzip сжимает файлы, а не каталоги. Если вы хотите сжать каталог, вы должны сначала создать тарбол. Вы можете создать тарбол и сжать его за один шаг.

tar cvzf tarball.tar.gz directory/

(создать, подробный, gZip, в этот файл)

полностью изменить процесс

tar xvzf tarball.tar.gz

(Экстракт)

2
tar cf - directory | gzip -9c > foo.tar.gz

Затем скопируйте это как прежде, затем сделайте обратное:

tar xzf foo.tar.gz

Если вы используете SSH для передачи файлов, вы можете пропустить промежуточный этап для хранения и передачи файла:

tar cf - directory | gzip -9c | ssh user@hostname "cd /destdir ; tar xzvf -"

Это особенно полезно, если ваш результирующий tar-файл очень большой и может не помещаться в целевой раздел вместе с несжатыми данными. В этом случае использование rsync может быть лучше в любом случае.

1

Похоже, вы должны были использовать tar (с опцией gzip):

# -z  : pipe through gzip
# -cf : create file
tar -zcf new.tgz /path-to-directory

затем с полученным файлом new.tgz:

# z : gzip
# x : extract
# p : keep permissions
tar zxpf new.tgz

РЕДАКТИРОВАТЬ

Какой смысл в gzip -r? - Jeffp 37 минут назад

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

Как примечание, я считаю, что bzip2 выполняет сжатие намного лучше, чем gzip - хотя и медленнее.

# -j  : pipe through bzip2
# -cf : create file
tar -jcf new.tar.bzip2 /path-to-directory

bunzip2 new.tar.bzip2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .