-1

我正在尝试创建一个遍历目录的 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"

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

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

我遇到的问题是它没有更改目录中的文件,而是更改了目录本身。

4

2 回答 2

1
for i in "$dir2/"*; do
    mv "$i" "${i%.*}-BACKUP.${i##*.}"
done
于 2012-10-11T18:56:28.383 回答
0
for i in *
do
  echo $i
  mv $i `basename $i`.new
done
于 2012-10-11T18:58:16.597 回答