Как gzip все файлы во всех подкаталогах в один сжатый файл в bash

Возможный дубликат:
gzipping набор каталогов и создание сжатого файла tar

В этом сообщении описывается, как каждый файл в каждом каталоге каталога настраивать каждый файл. Однако мне нужно сделать что-то немного другое. Мне нужно создать один большой файл gzip для всех файлов в определенном каталоге. Мне также нужно указать имя выходного файла для сжатого файла (например, files.gz) и перезаписать старый сжатый файл, если он уже существует.

Ответ 1

tar -zcvf compressFileName.tar.gz folderToCompress

все в папкеToCompress перейдет в compressFileName

Изменить: после просмотра и комментариев я понял, что люди могут запутаться с compressFileName без расширения. Если вы хотите, вы можете использовать расширение .tar.gz(как предложено) с параметром compressFileName

Ответ 2

существует множество методов сжатия, которые рекурсивно работают в командной строке и хорошо знают, кто является конечной аудиторией.

то есть. если его нужно отправить кому-то, работающему с окнами, то zip, вероятно, будет лучше:

zip -r file.zip folder_to_zip

unzip filenname.zip

для других пользователей Linux или ваш собственный tar отлично [/p >

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

Нужно быть осторожным с tar и как вещи tarred up/extract, например, если я запустил

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/дома/MyUserName

tar -xvzf passwd.tar.gz

это создаст /Главная/MyUserName/и т.д./пароль

unsure, если все версии tar выполняются так:

 Removing leading `/' from member names

Ответ 3

Сообщение @amitchhajer работает для GNU tar. Если кто-то находит этот пост и нуждается в нем для работы в системе NON GNU, они могут сделать это:

tar cvf - folderToCompress | gzip > compressFileName

Чтобы расширить архив:

zcat compressFileName | tar xvf -