bash“noclobber”옵션을 어떻게 재정의합니까? 쓰지 못하게합니다. 그러나 때때로 나는

bash noclobber옵션은 리디렉션으로 파일을 덮어 쓰지 못하게합니다. 그러나 때때로 나는 정말로 원합니다. csh비슷한 옵션이 있으며 !파일 이름 앞에 a 를 붙여서 재정의 할 수 있습니다 . 이것을 할 수있는 방법이 bash있습니까?



답변

예. |리디렉션 연산자에 추가 하여 양식을 >|만듭니다. 이것은 Bash Reference Manual의 3.6.2 , qv에 있습니다.

경로 재 지정 연산자가 ‘>’이고 세트 내장에 대한 noclobber 옵션이 사용 가능한 경우, 단어 확장으로 인해 이름이 지정된 파일이 존재하고 일반 파일 인 경우 경로 재 지정이 실패합니다. 리디렉션 연산자가 ‘> |’이거나 리디렉션 연산자가 ‘>’이고 noclobber 옵션이 활성화되어 있지 않으면 word로 이름이 지정된 파일이 존재하더라도 리디렉션이 시도됩니다.

noclobber 옵션에 대한이 자습서를 방문하십시오 . 도움이 될 수 있습니다.


답변

|에서 bash!같이 ( “bang”) 대신 ( “pipe”)를 사용하십시오 csh. 예를 들면 다음과 같습니다.

echo done >| out

당신이 원하는 경우 리디렉션 참고 stderrstdout 하고 우선 noclobber, 어느 쪽 >|&&>|작동합니다; 대신 긴 형식을 사용하십시오.

cmd-with-errors done >| out 2>&1