Як запхати до іншого каталогу призначення?


80

Як перенести ручку до каталогу призначення, відмінного від поточного?

Це не спрацювало:

gunzip *.gz /putthemhere/

Відповіді:


104

Попросіть 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використовується для отримання частини імені файлу без розширення)


3
Створює файл, але не зберігає право власності на файли, дозволи тощо. Це може бути добре чи погано залежно від вашої конкретної ситуації.
Кріс Джонсон

2

Якщо вам потрібно витягнути один файл і записати в каталог, що належить root, тоді використовуйте 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, який є всі gzipped файли в каталозі.)


Писати з кореневими привілеями sudo tee $filename >/dev/null- трохи більше ідіоматично, ніж використовувати dd.
dcoles

1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.