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