스크립트 실행을 위한 디렉터리 제한

스크립트 실행을 위한 디렉터리 제한

예를 들어 다음과 같은 스크립트가 있습니다.

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전에 간단한 확인을 수행한다는 것 입니다.

관련 정보