Как я могу распаковать в другой каталог назначения?

115071
Scott Szretter

Как я могу заархивировать в каталог назначения, отличный от текущего?

Это не сработало:

gunzip *.gz /putthemhere/ 
67

3 ответа на вопрос

87
Benjamin Bannier

Попросить gunzipвывести на стандартный вывод и перенаправить в файл в этом каталоге:

gunzip -c file.gz > /THERE/file 

zcatэто ярлык для gunzip -c.

Если вы хотите разархивировать несколько файлов, переберите все файлы:

for f in *.gz; do STEM=$(basename "$" .gz) gunzip -c "$" > /THERE/"$" done 

(здесь basenameиспользуется для получения части имени файла без расширения)

Создает файл, но не сохраняет владельца файла, прав доступа и т. Д. Это может быть хорошо или плохо в зависимости от конкретной ситуации. Chris Johnson 9 лет назад 2
1
jangelfdez

Вы можете попробовать с помощью> перенаправить результат в нужное место.

1
Jamieson Becker

Если вам нужно извлечь один файл и записать в корневой каталог, используйте sudo dd:

zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null 

Если файл поступает из удаленного источника (например, ssh, curl https и т. Д.), Вы можете сделать это следующим образом:

ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null 

(Обратите внимание, что эти примеры работают только для одного файла, в отличие от примера * .gz, который представляет собой все сжатые файлы в каталоге.)

Для записи с привилегиями root `sudo tee $ filename> / dev / null` немного более идиоматичен, чем использование` dd`. dcoles 5 лет назад 0

Похожие вопросы