我运行了一个使用 Perl 的脚本
perl -p -i.bak -e "..." *.sh dir/*.sh
这将创建每个文件的副本,如下所示:
script.sh
script.sh.bak
我现在想从.bak文件中进行恢复。我该如何轻松地执行此操作?
for file in *.sh.bak dir/*.sh.bak; do cp "$file" "${file//.bak}"; done
您也可以使用mv
而不是cp
。
find -name '*.bak' | sed 's:.bak$::' | xargs -n 1 -I % cp %.bak %
谢谢您的修复。
我一直在使用下面的代码组合来修复 Joomla 网站中的 'eval(base64_decode' 问题。
查找: grep -lr --include=*.php "eval(base64_decode" ./
删除: grep -lr --include=.php "eval(base64_decode" ./ | xargs sed -i.bak 's/eval(base64_decode[^;];/\n/g'
撤销: find -name '*.bak'|sed 's:.bak$::'|xargs -n 1 -I % cp %.bak %
ARG_MAX
才会成为问题。 - tripleeeARG_MAX
不适用于shell内置命令 - Dennis Williamson