有时rm -rf
在脚本中使用可能会造成灾难性的后果
例子
rm -rf $TMP/$folder
当 TMP 和 $folder 没有任何值时,它实际上会
删除“/”下的所有内容
所以我问如何rm -rf
在脚本中使用它才能安全?
答案1
- 检查
$TMP
和是否$TMP/$folder
是目录 $TMP
检查和的规范路径$TMP/$folder
是否不同(想象folder=""
或folder="/"
)- 检查是否
$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