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

时间:2019-07-16 10:49:15

标签: linux bash ubuntu-18.04

前提

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

在此先感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

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

sudo myscript.sh

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

答案 1 :(得分:0)

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

sudo script.sh

如果仍然无法执行此操作,请确保您的用户ID在sudoers文件中,以便您具有必要的root特权。