Разархивировать несколько файлов в разных каталогах
Я пытаюсь выполнить обновление на нескольких сайтах, использующих CMS с открытым исходным кодом, но не исправляя файл исправления в каталоге httpdocs каждого сайта. Мой план состоял в том, чтобы выполнить поиск файла патча и распаковать его с помощью следующей команды:
find . -name "patchfile.tar.gz" -exec tar -xzvf {} \; -print
но, похоже, не работает успешно
У кого-нибудь есть идеи, почему бы и нет?
Большое спасибо.
1 ответ
Решение
Вы извлекаете файл tar в текущем каталоге, а не в том месте, где находится файл исправления. Вы можете написать небольшую оболочку для извлечения файлов в нужном каталоге, например
#!/bin/bash
DIR=`dirname $1`
cd $DIR
tar xzf $1
Теперь команда поиска может быть
find ... -exec tar.sh {} \; ...