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