이 bash
noclobber
옵션은 리디렉션으로 파일을 덮어 쓰지 못하게합니다. 그러나 때때로 나는 정말로 원합니다. csh
비슷한 옵션이 있으며 !
파일 이름 앞에 a 를 붙여서 재정의 할 수 있습니다 . 이것을 할 수있는 방법이 bash
있습니까?
답변
예. |
리디렉션 연산자에 추가 하여 양식을 >|
만듭니다. 이것은 Bash Reference Manual의 3.6.2 , qv에 있습니다.
경로 재 지정 연산자가 ‘>’이고 세트 내장에 대한 noclobber 옵션이 사용 가능한 경우, 단어 확장으로 인해 이름이 지정된 파일이 존재하고 일반 파일 인 경우 경로 재 지정이 실패합니다. 리디렉션 연산자가 ‘> |’이거나 리디렉션 연산자가 ‘>’이고 noclobber 옵션이 활성화되어 있지 않으면 word로 이름이 지정된 파일이 존재하더라도 리디렉션이 시도됩니다.
noclobber 옵션에 대한이 자습서를 방문하십시오 . 도움이 될 수 있습니다.
답변
|
에서 bash
와 !
같이 ( “bang”) 대신 ( “pipe”)를 사용하십시오 csh
. 예를 들면 다음과 같습니다.
echo done >| out
당신이 원하는 경우 리디렉션 참고 stderr
로 stdout
하고 우선 noclobber
, 어느 쪽 >|&
도 &>|
작동합니다; 대신 긴 형식을 사용하십시오.
cmd-with-errors done >| out 2>&1