Как 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 -