我有一个更改文件名的脚本。它采用目录名称并添加到文件名中。顺便说一句,使用tr替换字符串:
0004目录的名称(此目录是脚本) - DSC_1234.jpg
结果0004_1234.jpg
如果我在特定目录中,该脚本可以正常工作。我想在子目录中更改名称
#!/bin/bash
CURRENT=`pwd`
BASENAME=`basename $CURRENT`
echo $BASENAME
for i in ./*DSC*;do mv -- "$i" "${i//DSC/$BASENAME}";done
答案 0 :(得分:2)
以下内容适用于子目录:
for i in $(find . -type f); do dir="$(dirname ${i#./})"; mv "$i" "${i//DSC/$(basename $dir)}"; done
答案 1 :(得分:0)
您可能希望在bash脚本上使用find
(调用该脚本your_script.sh
):
find $ROOT_DIR -type d -exec your_script.sh \;