我正在尝试重命名我文件夹中子目录中的所有文件。文件结构如下:
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
答案 0 :(得分:1)
$dirnew = ${dirname/\///}
变量赋值不能在等号周围有空格,左侧不应该有$
。你替换中也有一个太多的斜线。
dirnew=${dirname/\//}