ошибка / usr / local / bin / perl: список аргументов слишком длинный - PullRequest
1 голос
/ 06 июля 2010

я выполнил эту команду, чтобы удалить вредоносное ПО из файлов всех моих веб-сайтов и сохранить резервную копию из каждого файла, но после 1 минта после выполнения возникла ошибка / usr / local / bin / perl: список аргументов слишком длинный

Может кто-нибудьПредложите способ избежать этой ошибки, PS У меня огромное количество файлов:)

 perl -e "s/<script.*PaBUTyjaZYg.*script>//g;" -pi.save $(find /home/ -type f -name '*php*')

1 Ответ

12 голосов
/ 06 июля 2010

Используйте команду xargs, которая считывает имена файлов из STDIN и запускает команду несколько раз, передавая как можно больше имен файлов на каждый вызов целевой команды

find /home/ -type f -name '*php*' -print0 | xargs -0 perl -e "s/<script.*PaBUTyjaZYg.*script>//g;"

Аргумент print0 для поиска работает с-0 аргумент к xargs, чтобы гарантировать, что имена файлов заканчиваются нулевым символом.Это предотвращает появление имен файлов со встроенными пробелами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...