LinuxForum.Fans
Тема

Распаковать архив tar.gz

Автор: ERT 8 сообщений 17221 просмотров
#194468

Здравствуйте! Подскажите, как правильно распаковать архив в нужную директорию, с извлечением всех файлов в эту директорию?
Пример.
Я скачал архив myarchive.tar.gz, распаковал его:
[console]tar -xzvf ./myarchive.tar.gz[/console]
После распаковки структура каталога такая: myarchive/а_тут_куча_файлов_движок_форума
Переместить все в директорию веб сервера, в папку (домен) не вопрос:
[console]mv ./myarchive /var/www/mydomain[/console]
Но перемещается вся папка. И вот тут у меня загвоздка. Я никак не могу найти решения, как переместить в директорию /var/www/mydomain то, что находится в папке myarchive (только файлы движка, чтобы было так: /var/www/mydomain/файлы_движка_форума).
Можно конечно и через ftp, но очень интересно как это можно сделать одной командой, после распаковки архива.
Спасибо.

#194470
ERT написал:
mv ./myarchive /var/www/mydomain

А так:
[console]mv ./myarchive/* /var/www/mydomain[/console]

Проблема, IMHO, в «неправильном» создании архива. Следовало перейти в директорию, предназначенную для архивирования, заархивировать и тогда извлечь архив можно будет одной командой.
То есть
— создаём архив
[console]
cd /var/www/mydomain_old
tar cpzvf myarchive.tar.gz . # Точка в конце команды важна!
[/console]
— разархивирование
[console]
tar xpvf myarchive.tar.gz -C /var/www/mydomain_new
[/console]

#194471
Lupo Alberto написал:
Проблема, IMHO, в «неправильном» создании архива. Следовало перейти в директорию, предназначенную для архивирования, заархивировать и тогда извлечь архив можно будет одной командой.

Тут ситуация в следующем. Что если архивировал не я, а скачал его (wget)? Или тот, кто архивировал и разместил этот архив у себя на ресурсе, должен все правильно упаковать?
Сейчас попробую предложенный Вами вариант.

#194473
ERT написал:
mv ./myarchive /var/www/mydomain

Наверное, всё же так:
[console]
cd ./myarchive
mv * /var/www/mydomain/
[/console]

#194474
Lupo Alberto написал:

А так:
[console]mv ./myarchive/* /var/www/mydomain[/console]

Спасибо огромное. Все получилось и, как оказалось, намного проще (команда), чем я пытался выполнить.
С утра сижу с этим вопросом.

#194508

А можно еще одно уточнение. Какую команду нужно выполнить, чтобы залить файлы в эту же директорию (/var/www/mydomain) с заменой?

#194513
ERT написал:
Какую команду нужно выполнить, чтобы залить файлы в эту же директорию (/var/www/mydomain) с заменой?
text
mv -f ./myarchive/* /var/www/mydomain

либо

text
mv -u ./myarchive/* /var/www/mydomain

В первом случае — переписать файлы без подтверждения; во втором — переместить файлы, если только исходные файлы новее имеющихся либо отсутствуют в каталоге назначения.

#194514

Благодарю еще раз.

Войдите или зарегистрируйтесь, чтобы ответить.