다음 명령 체인이 있습니다.
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 파일인데 체인을 사용하여 삭제하고 싶습니다. 어떻게 해야 합니까?
답변1
|xargs rm -f
find 명령을 사용하여 이 모든 작업을 수행할 수 있지만 해당 명령에 추가하는 것만 시도할 수 있습니다 .
이게 그 모습이야
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에만 해당).