怎么把同一目录及所有子目录下的所有*.a改成对应的*.b

怎么把同一目录及所有子目录下的所有*.a改成对应的*.b

不瞒各位,偶中了爱情后门F盘好多.exe被改成了.zmx
F盘在LINUX下是/mnt/winf
包含很多目录,可能每个目录都有*.zmx
我现在要想把他改成*.exe
用find命令和tr试试吧
最开始想到的,我不知道有没有更好的方法
[code:1]
for file in *.zmx; do
sfile=`echo $file | sed 's/\.zvx$/\.exe/'`
mv $file $sfile
done
[/code:1]
[quote:899f4d6ffc="JohnnyHo"]最开始想到的,我不知道有没有更好的方法
[code:1]
for file in *.zmx; do
sfile=`echo $file | sed 's/\.zvx$/\.exe/'`
mv $file $sfile
done
[/code:1][/quote]
我想到的和你的一样
但是还需要加上find来搜索子目录下的.zmx文件才行
我每次试的时候都是find出问题,不能成功
如果不递归的话,这样子就可以了
试试这个:
[code:1]
find ./ -name "*.zmx" -exec rename .zmx .exe '{}'  \;[/code:1]
[code:1]
#!/bin/bash

FILES=`find /mnt/winf -name "*.zmx"`

for zmx in $FILES ; do
    exe=`echo $zmx | sed "s/.zmx/.exe/"`
    mv $zmx $exe
done
[/code:1]
试试看吧