使用linux中的bash脚本重命名子目录中的文件

时间:2015-09-23 14:22:21

标签: bash

我正在尝试重命名我文件夹中子目录中的所有文件。文件结构如下:

PQR/
    aaa.txt
    bbb.jpg
    ccc.jif
XYZ/
    aaa.txt
    bbb.jpg
    ccc.jif 
LMN/
    aaa.txt
    bbb.jpg
    ccc.jif

我想要的是什么:

PQR/
    PQR_aaa.txt
    PQR_bbb.jpg
    PQR_ccc.jif
XYZ/
    XYZ_aaa.txt
    XYZ_bbb.jpg
    XYZ_ccc.jif 
LMN/
    LMN_aaa.txt
    LMN_bbb.jpg
    LMN_ccc.jif

我正在尝试使用以下bash脚本,但它给了我各种错误(我对shell脚本相对较新,所以请耐心等待。)

#!/bin/bash/
for dirname in */
do
 cd $dirname
 dirnew=${dirname/\///}  #To escape the forward slash
 for file in *.*          #Reading the files in the directory
 do
   mv "$file" "$dirnew"_"$file"
 done
 cd ..
done

1 个答案:

答案 0 :(得分:1)

$dirnew = ${dirname/\///}

变量赋值不能在等号周围有空格,左侧不应该有$。你替换中也有一个太多的斜线。

dirnew=${dirname/\//}