我上传到主机list.txt,其中包含受感染文件列表。它看起来像这样:
file1.php
file2.php
cat/file3.php
cat/subcat/file4.php
仅在第1行修改受感染的文件。所以我运行for
循环。此循环必须将具有恶意代码的整个第一行更改为<?php
。
for file in $(cat list.txt); do sed -i '1s/.*/<?php/' *.php; done
问题是循环似乎只在第一个文件夹(file1和file2)中更改文件。子文件夹中的文件不会更改。知道我做错了吗?
答案 0 :(得分:0)
这是因为在sed命令中你并没有真正使用循环中定义的变量。 尝试
for file in $(cat list.txt); do sed -i '1s/.*/<?php/' $file; done