【发布时间】:2012-05-29 07:31:16
【问题描述】:
我运行了一个 perl 脚本,使用
perl -p -i.bak -e "..." *.sh dir/*.sh
这创建了每个文件的副本,例如
script.sh
script.sh.bak
我现在想从 .bak 文件中恢复。我怎样才能轻松做到这一点?
【问题讨论】:
我运行了一个 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。
【讨论】:
ARG_MAX 可能会咬你。
ARG_MAX doesn't apply to shell builtins
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 %
【讨论】: