error/usr/local/bin/perl:参数列表太长

use*_*697 1 regex linux shell perl

香港专业教育学院执行此命令从我的所有网站文件中删除malwarm并保留每个文件的备份,但执行后1分钟得到错误/ usr/local/bin/perl:参数列表太长

任何人都可以建议一种方法来避免这个错误,PS ive一大堆文件:)

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

Ste*_*eet 12

使用xargs命令从STDIN读取文件名,并多次运行该命令,将尽可能多的文件名传递给目标命令的每次调用

find /home/ -type f -name '*php*' -print0 | xargs -0 perl -e "s/<script.*PaBUTyjaZYg.*script>//g;"
Run Code Online (Sandbox Code Playgroud)

要查找的print0参数与xargs的-0参数一起使用,以确保文件名以空字符终止.这可以防止带有嵌入空格的文件名导致错误.