때때로 rm -rf
스크립트에 사용되면 비참한 결과를 초래할 수 있습니다.
예
rm -rf $TMP/$folder
TMP 및 $folder에 값이 없으면 실제로는
"/" 아래의 모든 항목을 삭제합니다.
rm -rf
그래서 스크립트에서 어떻게 안전하게 사용할 수 있는지 묻습니다 .
답변1
- 합계가 디렉터리인지
$TMP
확인 하세요 .$TMP/$folder
$TMP
$TMP/$folder
sum의 정식 경로가 다른지 확인하세요 (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