我想将某一个目录内所有文件重命名为与另一文件夹内所有文件名相同,但始终不得解,烦请高手指点,谢谢!
count=0
i=0
for path in $1/*;
do
fileName=$(basename $path)
fname=${fileName%.*}
fExtension=${fileName#*.}
array_fileName[count]=${fileName}
let count++
done
for path in $2/*;
do
fileName=$(basename $path)
fname=${fileName%.*}
fExtension=${fileName#*.}
#echo $fileName
#rename "y/$fileName/${array_fileName[$i]}/" "$fileName"
#echo $fileName
#echo ${array_fileName[$i]}
#echo $i
#echo " "
mv $fileName ${array_fileName[$i]}
let i++
done
报错如下:mv: 在"WALLPAPER_WORK.JPG" 后缺少了要操作的目标文件
相思爱文 于 2013-01-31 23:26:12发表:
问题描述不是很清楚,具体命名顺序如何设定?
如果是以ls后显示的顺序更名,那就简单了
目录a内的文件重命名为目录b内文件名相同
在当前目录上执行
ls a >lista
ls b >listb
建文件test.sh
for i in `cat ../lista`
do
read j
mv $i $j
done
在目录a中执行test.sh<../lishb 就行了
Intercon 于 2013-01-31 08:56:04发表:
帮顶下