셸 스 크 립 트 에서 삭제 작업 주의사항 사용 하기

982 단어 셸 스 크 립 트

오류 예:
FILE_HOME="/home/admin/output/logs"
cd $FILE_HOME
for DIR in `ls $FILE_HOME`   ##1
do
        cd "./$DIR/abc"  ##2
        find . -maxdepth 1 -mmin +3 | xargs rm -rf  ##3
        cd ../..   ##           ##4
done
 이 예 는 안전 하지 않다.
\#\#1 디 렉 터 리 가 있다 고 판단 한 후,이 디 렉 터 리 중 하 나 를 다른 프로 세 스 가 삭제 하면
\#\#2 이 줄 의 실행 이 실 패 했 습 니 다.
\#\#3 현재 디 렉 터 리(/home/admin/output/logs)의 모든 파일 을 삭제 합 니 다.
\#\#4 cd../.홈/admin/하
다음 순환 은 위 와 같은 논리 에 따라 실 패 했 습 니 다.\#\#3 은/home/admin 아래 모든 파일 을 삭제 합 니 다.
 
올 바른 서법
FILE_HOME="/home/admin/output/logs"
for DIR in `ls $FILE_HOME` 
do
	cd "$FILE_HOME/$DIR/abc" && (find . -maxdepth 1 -mmin +3 | xargs -t -n 1000 rm -rf)
done
 
 
1.절대 경로 사용
2.&를 사용 하여 이전 cd 명령 을 실행 하 는 데 실 패 했 습 니 다.다음 rm 명령 은 더 이상 실행 되 지 않 습 니 다.잘못된 삭제 가 없 도록 합 니 다.

좋은 웹페이지 즐겨찾기