Как извлечь единственную папку и ее подпапки от “tarball” (.tar.gz)

Я должен извлечь единственную папку и ее подпапки от tarball (.tar.gz) на сервере CentOS. У меня нет малейшей подсказки, как сделать это с помощью терминала SSH.

Я попробовал:

gunzip -c files_20100623.0110.tar.gz | tar -xvf home/bsisplas/public_html/staging/template/*.*

Однако это, может казаться, не находит файл в архиве. Кроме того, где в gunzip синтаксис Вы указываете, куда извлеченные файлы должны пойти? Я - новичок терминала Linux по меньшей мере.

4
задан 21.11.2012, 19:11

2 ответа

Во-первых, когда Вы используете -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

Как это работает?

6
ответ дан 07.12.2019, 19:31

Все, в чем Вы нуждаетесь, является tar. Можно получить список файлов в tarball с -t опция, и затем извлекает столь же нормальный, но с путем к файлу как заключительный аргумент: tar zxvf foo.tar.gz filepath

3
ответ дан 07.12.2019, 19:31

Теги

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