스크립트에서 rm -rf를 사용하세요.

스크립트에서 rm -rf를 사용하세요.

때때로 rm -rf스크립트에 사용되면 비참한 결과를 초래할 수 있습니다.

rm -rf $TMP/$folder

TMP 및 $folder에 값이 없으면 실제로는

"/" 아래의 모든 항목을 삭제합니다.

rm -rf그래서 스크립트에서 어떻게 안전하게 사용할 수 있는지 묻습니다 .

답변1

  1. 합계가 디렉터리인지 $TMP확인 하세요 .$TMP/$folder
  2. $TMP$TMP/$foldersum의 정식 경로가 다른지 확인하세요 ( 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

관련 정보