当前位置: 代码迷 >> Solaris >> solaris 批量改文件名解决办法
  详细解决方案

solaris 批量改文件名解决办法

热度:9229   发布时间:2013-02-26 00:00:00.0
solaris 批量改文件名
如题, solaris和unix很多命令都是通用的,我看了网上一个命令的用法,不是很理解,希望高手指导 
$ for f in filelist ... ; do mv $f ${f/fromtext/totext} ; done 

我想把c2t0d0s0 c2t0d0s1 c2t0d0s2 三个文件改为c1t0d0s0 c1t0d0s1 c1t0d0s2 
请问如何实现,上面的命令解释不是很明白,最好能说明下. 


有朋友写了下面的代码,本人还是看不懂. 
for f in c2t0d0s0 c2t0d0s1 c2t0d0s2 
do 
f2=`echo $f|sed  "s/c2/c1/g"`          //用sed把f中的c2替换成c1,存在f2 
#echo $f2 
mv $f $f2                                //改名 
done 

上面的代码echo出现我需要的文件名,但是mv不成功,出现missing file argue
------解决方案--------------------------------------------------------
脚本没有问题

/home/oracle/test>% cat rename.sh
for f in c2t0d0s0 c2t0d0s1 c2t0d0s2 
do 
f2=`echo $f
------解决方案--------------------------------------------------------
sed  "s/c2/c1/g"` 
#echo $f2 
mv $f $f2                    
done 

/home/oracle/test>% sh rename.sh
/home/oracle/test>% ls -l c*
total 301174
-rw-r--r--   1 oracle   dba            0 12月 20 08:17 c1t0d0s0
-rw-r--r--   1 oracle   dba            0 12月 20 08:17 c1t0d0s1
-rw-r--r--   1 oracle   dba            0 12月 20 08:17 c1t0d0s2
-rw-------   1 oracle   dba       228112 12月 18 12:37 core
/home/oracle/test>%    
  相关解决方案