在bash中安全递归删除

时间:2016-11-08 17:52:28

标签: linux bash validation delete-file

有没有办法检查在bash脚本中是否可以删除用户输入或某些自检机制提供的路径?

例如:

rm -rf $SOMELOCATION

显然我不希望SOMELOCATION成为/ / var / etc / home / usr / opt / root或某些重要目录中的任何一个。

有没有办法在bash中阻止这样的事件而不迭代上面的所有目录(可能还有更重要的目录)?

isSystemDirectory函数是否返回true或false? : - )

1 个答案:

答案 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}}。 (或者至少,有一个最新的备份可用于从错误中恢复。)