
Итак, сегодня я обнаружил, что один из моих 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
.