重命名子目录中的文件时遇到问题(有条件)[shell 脚本]

Having trouble renaming files in subdirectories (With conditions) [shell scripting]

我没有成功编写正确的代码!

我的目录是这样的

/Users/dave/yellow/shade001/light
/Users/dave/yellow/shade001/dark1
/Users/dave/yellow/shade001/dark2
...
/Users/dave/yellow/shade999/light
/Users/dave/yellow/shade999/dark1
/Users/dave/yellow/shade999/dark2

yellow目录下大约有999个shade文件夹,每个文件夹包含 2 或 3 个文件(light 始终存在,dark1 始终存在,dark2 有时存在)。我想重命名 lightdark1 并删除 dark2,这样:

light.txt renamed to lgt.txt

dark1.txt renamed to dk1.txt

dark2 (whenever found) should be deleted

这是我所做的:

for /r %x in (light.txt) do ren "%x" lgt.txt for /r %x in (dark1.txt) do ren "%x" dk1.txt find . -type f -name 'dark2' -delete done

在Bash或类似的shell:

find shade* -name light.txt | while read NAME; do mv $NAME `dirname $NAME`/lgt.txt; done

dark1dark2 类比(在后一种情况下 rm 而不是 mv)。