2013-03-09 238 views
3

我有很多下列文件是文件用shell脚本重命名文件

DSCN2352.JPG DSCN2356.JPG DSCN2360.JPG DSCN2364.JPG 
DSCN2353.JPG DSCN2357.JPG DSCN2361.JPG DSCN2365.JPG 

我想重命名这些文件,所以我写了一个脚本

#!/bin/bash 
declare -a kl=("[email protected]") 
kl=$(ls *.JPG) 
echo ${kl[@]} 
p=0 
for i in kl ; 
do mv $kl d$p.JPG 
    $p=$p+1 ; 
done 

我收到错误

mv: target `d0.JPG' is not a directory 
./rename.sh: line 8: 0=0+1: command not found 

UPDATE
after更新脚本

#/bin/bash 
p=0 
for i in *.JPG; 
do 
mv "$i" "d$p.JPG" 
((p+1)) ; 
done 

文件

DSCN2352.JPG DSCN2356.JPG DSCN2360.JPG DSCN2364.JPG 
DSCN2353.JPG DSCN2357.JPG DSCN2361.JPG DSCN2365.JPG 

消失, 我只剩其中的一个文件文件 d0.jpg休息得到执行更新后的脚本后删除。

回答

2

变化

$p=$p+1 ; 

((p=p+1)) 

或者干脆

((p++)) 
好日子

0
p=0 
for i in *.JPG 
do 
    mv "$i" d$p.JPG 
    p=$(($p+1)) 
done 
0

你可以做这样的事情:

#!/bin/bash 
p=0 
for file in ./*.JPG ; do 
    echo "$file" 
    mv $file d$p.JPG 
    p=`expr $p + 1` 
done