有没有办法检查用户输入或某些 self 检测机制提供的路径是否可以安全地在 bash 脚本中删除?
例如:
rm -rf $SOMELOCATION
显然我不希望 SOMELOCATION 是//var/etc/home/usr/opt/root 或一些重要目录中的任何一个。
有没有一种方法可以防止 bash 中发生此类事件,而无需迭代上面的所有目录(可能还有更重要的目录)?
有类似 isSystemDirectory 函数返回 true 或 false 的东西吗? :-)
最佳答案
没有;在将 SOMELOCATION
用作 rm
的参数之前,您需要检查它的值。
case $SOMELOCATION of
/|/var|/etc|/home|/usr|/opt|/root) echo "Will not delete $SOMELOCATION" ;;
*) rm -rf "$SOMELOCATION ;;
esac
权限允许 rm 失败,但由于 root
本质上拥有执行任何操作的权限,因此您在以 root
身份运行任何命令时需要采取适当的措施。 (或者至少,有一个最新的备份可以从错误中恢复。)
关于linux - bash 中的安全递归删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493434/