有没有办法检查在bash脚本中是否可以删除用户输入或某些自检机制提供的路径?
例如:
rm -rf $SOMELOCATION
显然我不希望SOMELOCATION成为/ / var / etc / home / usr / opt / root或某些重要目录中的任何一个。
有没有办法在bash中阻止这样的事件而不迭代上面的所有目录(可能还有更重要的目录)?
isSystemDirectory函数是否返回true或false? : - )
答案 0 :(得分:1)
没有;在将SOMELOCATION
用作rm
的参数之前,您需要检查case $SOMELOCATION of
/|/var|/etc|/home|/usr|/opt|/root) echo "Will not delete $SOMELOCATION" ;;
*) rm -rf "$SOMELOCATION ;;
esac
的值。
rm
权限允许root
失败,但由于root
基本上有权执行任何,因此在运行任何命令{{}}时,您需要特别小心。 {1}}。 (或者至少,有一个最新的备份可用于从错误中恢复。)