Linux

在腳本中使用 rm -rf

  • April 7, 2019

有時rm -rf在腳本中使用可能是災難性的

例子

rm -rf $TMP/$folder

當 TMP 和 $folder 沒有任何值時,它實際上會

刪除“/”下的所有內容

所以我問如何rm -rf在腳本中使用它,這樣它會安全嗎?

  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

引用自:https://unix.stackexchange.com/questions/510993