【发布时间】:2014-12-24 11:27:46
【问题描述】:
我正在尝试学习 bash 脚本。我编写了一个脚本,将文件名中的空格转换为下划线。它工作正常。到目前为止一切顺利。
我的脚本可能进入了某个目录,其中包含其他用户拥有的文件(例如 root 或 www-data)。
幸运的是,我的脚本无法转换这些文件 :) 但我更喜欢警告消息,例如“您需要 root 权限”左右。
这是转换块:
if [[ $# -eq 2 ]]; then
echo "Converting directory $2 .."
find . -name '* *' | while read file
do
target=`echo "$file" | sed 's/ /_/g'`
mv "$file" "$target" 2> /dev/null
done
else
fOptionE (produces usage message)
fi
你能帮我找到一个正确的方法来返回“需要root权限”输出吗?
【问题讨论】:
-
删除
2> /dev/null以使mv写入有用的规范错误消息。这比声称您需要 root 更好,因为 mv 可能失败的原因还有很多。 -
如果您想检查“需要root”,您可以尝试手动检查权限,但这不一定是一件简单的事情。
标签: linux bash permissions root