0

我有一个更改文件名的脚本。它需要一个目录名并添加到文件名中。顺便说一句,使用 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
4

2 回答 2

2

以下应在子目录中工作:

for i in $(find . -type f); do dir="$(dirname ${i#./})"; mv "$i" "${i//DSC/$(basename $dir)}"; done
于 2013-09-18T12:15:22.713 回答
0

您可能想find在 bash 脚本上使用(调用该脚本your_script.sh):

find $ROOT_DIR -type d -exec your_script.sh \;
于 2013-09-18T12:07:11.910 回答