Разархивировать несколько файлов в разных каталогах

Я пытаюсь выполнить обновление на нескольких сайтах, использующих 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 {} \; ...
Другие вопросы по тегам