脚本具有随机的“不允许操作”错误

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (2)

前提

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

问题

该脚本完成它的工作并重命名大多数文件,然后在重命名文件时随机输出“Operation Not Permitted”错误。

错误输出

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

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

提问于
用户回答回答于

而不是在脚本中放置sudo删除它并使用sudo运行脚本。

sudo script.sh

如果仍然无效,请确保您的用户标识位于sudoers文件中,这样您将拥有必要的root权限。

用户回答回答于

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

sudo myscript.sh

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

扫码关注云+社区

领取腾讯云代金券