예를 들어 다음과 같은 스크립트가 있습니다.
for i in */*/
do
cd $i
cp POSCAR.ideal OSZICAR ..
cd ..
rm -r */
cd ../;
done
폴더의 하위 폴더를 삭제합니다. 그러나 조심하지 않으면 마지막 하위 폴더가 ../
로 잘못 기록되는 등 ../../
컴퓨터 전체가 삭제됩니다. 이건 정말 나빠! 그렇다면 이러한 비극을 피하기 위해 단말기의 작동 범위를 안전하게 제한할 수 있는 방법이 있는지 묻고 싶습니다.
답변1
@Joe가 댓글에서 올바르게 언급했듯이 위험한 스크립트를 다시 작성하는 것이 좋습니다. 그러나 현재 스크립트를 계속 사용하려는 경우 기본 접근 방식은 rm
모든 작업을 if
조건부로 래핑하는 것입니다.
예를 들면 다음과 같습니다.
if pwd | grep <some-pattern>;
then rm -r */;
fi;
필요에 따라 이 섹션을 수정할 수 있습니다 grep
. 내 요점은 명령을 grep
실행하기 rm
전에 간단한 확인을 수행한다는 것 입니다.