在Linux中为文件重命名循环

时间:2012-10-11 18:52:59

标签: bash loops

我正在尝试创建一个遍历目录的for循环,并重命名该目录中的每个文件。

dir2=$1

for i in $dir2
do
file=$(basename "$i")
b=${file%.*}
c=${file#"$stub"}
d=-BACKUP
e=$b$d$c
mv "$i" "$e"

我正在尝试更改每个文件:我要成为$ e。

例如,如果我有一个目录,并且其中有一个名为test.txt的文件,则该文件将更改为test-BACKUP.txt

我遇到的问题是它没有用目录更改文件,它正在改变目录本身。

2 个答案:

答案 0 :(得分:1)

for i in "$dir2/"*; do
    mv "$i" "${i%.*}-BACKUP.${i##*.}"
done

答案 1 :(得分:0)

for i in *
do
  echo $i
  mv $i `basename $i`.new
done