Как извлечь отдельную папку и ее подпапки из "тарбола" (.tar.gz)
Мне нужно извлечь одну папку и ее подпапки из архива (.tar.gz
) на сервере CentOS. Я не имею ни малейшего понятия, как это сделать с помощью терминала SSH.
Я старался:
gunzip -c files_20100623.0110.tar.gz | tar -xvf home/bsisplas/public_html/staging/template/*.*
Однако он не может найти файл в архиве. Кроме того, где в gunzip
Синтаксис вы указываете, куда должны идти извлеченные файлы? Я терминальный терминал Linux, если не сказать больше.
2 ответа
Во-первых, когда вы используете -f
возможность tar
Вам нужно указать аргумент, указывающий имя файла архива. Так как вы кормите его из трубы из gunzip
, мы используем -
означать стандартный ввод:
gunzip -c files_20100623.0110.tar.gz | tar -xvf - home/bsisplas/public_html/staging/template/*.*
Следующим моим пунктом будет то, что вам нужно только указать имя каталога. (Также: *.*
обычно это ДОС-изм. Если вы имеете в виду "все файлы" в Unix, просто напишите *
, Если ты пишешь *.*
Вы говорите "все файлы с точкой где-то в их имени", что может исключать важные файлы без точки, например Makefile
или же README
):
gunzip -c files_20100623.0110.tar.gz | tar -xvf - home/bsisplas/public_html/staging/template
Это должно работать. Но вы можете сделать вещи немного проще, используя tar
"s -z
вариант, который говорит ему сделать gunzip
сам. Мы используем это и заменяем -
введите имя файла с именем файла архива:
tar -xvzf files_20100623.0110.tar.gz home/bsisplas/public_html/staging/template
Как это работает?
Все, что вам нужно, это гудрон. Вы можете получить список файлов в архиве с помощью -t
вариант, а затем распакуйте как обычно, но с путем к файлу в качестве последнего аргумента: tar zxvf foo.tar.gz filepath