0

前提

我找不到可以按照我需要的方式重命名多个文件(100+)的工具或脚本。所以我尝试使用“mv”命令编写一个 Bash 脚本。

问题

该脚本完成了它的工作并重命名了大多数文件,但随后在重命名文件时随机输出“不允许操作”错误。

错误输出

mv:无法将“filename.extension”移动到“newFilename.extension”:不允许操作

剧本

a=1
for i in *.<extension>; do
  newName=$(printf "%03d <filename>.<extension>" "$a") #03 = Amount of 0 Padding you want to add
  sudo mv -i -- "$i" "$newName"
  let a=a+1
done

提前感谢您提供任何可能的帮助。

4

2 回答 2

0

在脚本中包含 sudo 很少是一个好主意。相反,从脚本中删除 sudo 并使用 sudo 运行脚本本身:

sudo myscript.sh

这样,脚本中的所有命令都将以 root 权限运行,并且您只需在启动脚本时输入一次密码。

于 2019-07-16T10:54:41.067 回答
0

不要将 sudo 放在脚本中,而是将其删除并使用 sudo 运行脚本。

sudo script.sh

如果这仍然不起作用,请确保您的用户 ID 在 sudoers 文件中,以便您拥有必要的 root 权限。

于 2019-07-16T19:36:40.943 回答