2013-03-28 2 views

답변

40

당신은 두 가지 옵션이 있습니다

$ rm tempfl.txt 2> /dev/null 

리디렉션 스크립트 출력 /dev/null

$ ./myscript.sh 2> /dev/null 

후자에

억제 rm 경고 모든 다른 경고 메시지를 누락 단점이있다 스크립트에 의해 생성됩니다.

+2

rm -f는 신중하게 사용해야합니다. – hetepeperfan

+0

좋은 지적, 덕분에 – kamituel

2

당신은 위의 답변에 추가

rm tempfl2.txt 2> /dev/null 
2

같이는/dev/null로 모든 오류 메시지를 리디렉션해야한다 : 아마 (거부 허가 또는 일부 등 같은) 오류 메시지를 유지하는 좋은 생각이다. 그냥 삭제하기 전에 파일의 존재를 테스트 :

[ -f file.txt ] && rm file.txt 

이 쉘, 예를 들어, bash는 같이하는 본을 가정합니다. 위의 내용은 디렉토리를 지우려고 시도하지 않는다는 추가적인 이점이 있습니다. rm은 할 수 없습니다. 파일이하지 않습니다

-f, --force ignore nonexistent files, never prompt 

명령은 또한 경우이 아닌 에러 코드를보고하지 않습니다이 같은

rm -f tempfl.txt 

-f 옵션의 역할 :

+0

고마워. –

0
우리는 출력 오류를 억제하는 2> /dev/null을 사용할 수 있습니다

|| true 성공의 종료 상태를 확인하기 위해 : 당신이 등, 쉘 스크립트, 메이크 파일에서 명령을 사용하는 경우

rm foo 
=> rm: cannot remove ‘foo’: No such file or directory 

rm foo 2> /dev/null 
echo $? 
=> 1 

rm foo 2> /dev/null || true 
echo $? 
=> 0 

을, 어쩌면 당신이 필요합니다.