rm
많은 파일을 삭제하기 위해 BASH 스크립트 내에서 사용 하고 있습니다. 때로는 파일이 존재하지 않으므로 많은 오류를보고합니다. 이 메시지는 필요 없습니다. 나는 rm
조용히 하기위한 명령에 대한 매뉴얼 페이지를 검색 했지만, 내가 찾은 유일한 옵션은 -f
“존재하지 않는 파일을 무시하고 프롬프트하지 않는다”라는 설명에서 올바른 선택 인 것 같지만 이름이 맞지 않는 것 같다 따라서 의도하지 않은 결과가 발생할 수 있습니다.
- 는 IS
-f
옵션은 침묵하는 올바른 방법rm
? 왜 전화하지-q
않습니까? - 이 옵션이 다른 작업을 수행합니까?
답변
주요 용도는 자체적으로 -f
사용하여 제거되지 않는 파일을 강제로 제거하는 것 rm
입니다 (특별한 경우 존재하지 않는 파일을 “제거”하여 오류 메시지를 억제 함).
당신은 또한 사용하여 오류 메시지를 리디렉션 할 수 있습니다
$ rm file.txt 2> /dev/null
(또는 운영 체제와 동등한 기능). 파일이 실제로 제거되었는지 여부를 확인하기 위해 $?
호출 한 직후 의 값을 확인할 수 있습니다 rm
.
답변
예, -f
가장 적합한 옵션입니다.
답변
-f는 올바른 플래그이지만 테스트 운영자에게는 rm이 아닙니다.
[ -f "$THEFILE" ] && rm "$THEFILE"
이것은 파일이 존재하고 일반 파일 (디렉토리, 장치 노드 등이 아님)임을 확인합니다.
답변
\rm -f file
보고하지 않습니다.
답변
지금까지로 rm -f
“무엇”을하고, 그것은 힘을 (수행 -f
속기입니다 --force
상황에서 침묵 제거) rm
, 그렇지 않으면 확인을 요청할 것입니다. 예를 들어, 쓰기 가능한 디렉토리에서 사용자가 쓸 수없는 파일을 제거하려고 할 때.
답변
cshell에 대해 동일한 문제가있었습니다. 내가 가진 유일한 해결책은 내 스크립트에서 “rm”이전의 패턴과 일치하는 더미 파일을 만드는 것입니다.