【问题标题】:Script has random 'Operation Not Permitted' Error脚本有随机的“不允许操作”错误
【发布时间】:2019-07-17 03:36:40
【问题描述】:

前提

我找不到可以按照我需要的方式重命名多个文件 (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

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

【问题讨论】:

  • 您的代码中并没有真正的&lt;extension&gt;(和其他人),是吗?您应该展示您的实际代码,因为它通常是导致问题的小事情。请用您的“真实”代码更新您的 Q ;-)。祝你好运。

标签: linux bash ubuntu-18.04


【解决方案1】:

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

sudo myscript.sh

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

【讨论】:

  • 您好,感谢您的建议。我现在就改。你认为它会阻止错误吗?为什么?
【解决方案2】:

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

sudo script.sh

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2021-11-18
    • 2012-06-11
    相关资源
    最近更新 更多