我正在尝试重命名数百个文件夹以删除以文件夹名称为前缀的数字。我似乎已经完成了大部分工作,但是我的脚本还不能正常工作。当我echo
使用脚本创建的命令而不是运行这些命令时,一切看起来都很好。剧本:
for file in *
do
echo mv "'"$file"'" $(echo "'"$file"'" | sed 's/[0-9]\{1,3\} //')
done
返回多行:
mv '123 filename' 'filename'
mv '99 another name' 'another name'
. . . etc.
如果我采用这些行之一并在命令行上使用,则该文件夹将被适当地重命名。但是,如果我删除echo
以实际运行这些mv
命令,它们将不起作用。相反,mv
当您以某种方式错误地输入命令时,会打印出使用提醒。
为什么输出命令单独工作,而不是在 for 循环中?如何更正此脚本?