在脚本中使用 rm -rf

在脚本中使用 rm -rf

有时rm -rf在脚本中使用可能会造成灾难性的后果

例子

rm -rf $TMP/$folder

当 TMP 和 $folder 没有任何值时,它实际上会

删除“/”下的所有内容

所以我问如何rm -rf在脚本中使用它才能安全?

答案1

  1. 检查$TMP和是否$TMP/$folder是目录
  2. $TMP检查和的规范路径$TMP/$folder是否不同(想象folder=""folder="/"
  3. 检查是否$TMP/$folder可写
if [ -d "$TMP" ]\
 && [ -d "$TMP/$folder" ]\
 && [ "$(readlink -e "$TMP")" != "$(readlink -e "$TMP/$folder")" ]\
 && [ -w "$TMP/$folder" ]; then
    rm -rf "$TMP/$folder"
else
    echo "Could not delete folder \"$TMP/$folder\", TMP=$TMP, folder=$folder" >&2
fi

相关内容