Как перезаписать каталог в нескольких местах с помощью одного исходного каталога

Как перезаписать каталог в нескольких местах с помощью одного исходного каталога

Итак, сегодня я обнаружил, что один из моих PHP-файлов устарел, поэтому мне пришлось перезаписать каталог phpthumbна всем сервере.

Несколько веб-сайтов используют эту папку в нескольких неизвестных местах, так как же мне перезаписать все эти каталоги из одного исходного пути? (т. е. /home/test/testuser/phpthumb/в /home/*/*/phpthumb/)

решение1

Это должно сработать:

echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*

Вам придется работать с xargs. К сожалению, cpнельзя копировать в несколько целевых объектов. cpможно обрабатывать несколько источников.

Объяснение:

  • echo /home/*/*/phpthumb: список всех phpthumbкаталогов
  • xargs -t -n 1: xargs должен вызываться cpдля каждой строки отдельно
  • cp -r /home/test/testuser/phpthumb/*команда xargsдолжна вызвать. Обратите внимание, что целевой каталог будет добавлен в конце с помощью xargs.

решение2

попробуй это:

$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
    -exec cp /home/test/testuser/phpthumb/* {} \;

findкоманда ищет phpthumbв /home:

  • -type dвыберите папку
  • -not -pathисключаетtest/testuser/phpthumb

Для каждой папки выполнить cpкоманду. Если test/testuser/phpthumbэто дерево с подпапкой, добавить -Rопцию в cp.

Связанный контент