72

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

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

gunzip *.gz /putthemhere/

3 ответа3

95

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

gunzip -c file.gz > /THERE/file

zcat - это сокращение от gunzip -c .

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

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

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

2

Если вам нужно извлечь один файл и записать его в корневой каталог, используйте 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, который представляет собой все сжатые файлы в каталоге.)

1

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

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