Удалите файлы, которые предоставляются по каналу

У меня есть эта цепочка команд:

find . -print | grep php | xargs grep 'eval' -sl | xargs wc -l | grep ' [1-2][0-9] ' 

Это дает мне этот результат:

  14 ./includes/js/calendar/lang/vgju.php 18 ./includes/phpInputFilter/default.php 14 ./includes/Archive/eula.php 18 ./media/system/js/json.php 

Эти файлы являются зараженными файлами php, и я хотел бы удалить их с помощью моей сети. Как мне это сделать?

One Solution collect form web for “Удалите файлы, которые предоставляются по каналу”

Хотя вы, вероятно, можете сделать все это с помощью команды find, вы можете попробовать |xargs rm -f в эту команду |xargs rm -f .

Вот как это будет выглядеть

 find . -print | grep php | xargs grep 'eval' -sl | \ xargs wc -l | grep ' [1-2][0-9] ' | \ cut -f 2 -d ' ' | xargs rm -f 

Обратите внимание, что команда xargs rm работает здесь, потому что вы знаете, что в именах файлов нет специальных символов. Если в именах файлов могут быть пробелы, вы можете использовать xargs -d '\n' rm -f (только для Linux).

  • Перемещение подкаталога в новый родительский каталог, где новое имя каталога увеличивается на 1
  • Как выполнить команду несколько раз с разными аргументами?
  • Как распределить вычисления «tar czf» в течение длительного времени?
  • Используйте массив bash в качестве списка аргументов в списке (с помощью Midnight Commander)
  • git checkout конкретные файлы
  • команды трубопроводов после трубопровода xargs
  • Есть ли способ сделать этот однострочный лайнер быстрее?
  • Найдите файлы с определенным форматом файлов, коту, каждый с файлом заголовка, и сохраните результат в исходный файл для каждого такого файла
  • Различное поведение между find -exec и piping через xargs
  • Вывод команды при передаче по другой команде
  • Скопируйте файлы с родительской папкой в ​​новый каталог
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.