使用shell脚本重命名文件

时间:2013-03-09 04:34:12

标签: bash file-rename

我有很多文件是文件

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

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

#!/bin/bash
declare -a kl=( "$@" )
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

更新
更新脚本后

#/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执行更新的脚本后,其余文件将被删除。

3 个答案:

答案 0 :(得分:2)

更改

$p=$p+1  ;

(( p=p+1 ))

或只是

(( p++ ))

美好的一天。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你可以这样做:

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