유닉스에서 파괴를 허용하는 방법

유닉스에서 파괴를 허용하는 방법

나는 bash 쉘, BSD unix, macos를 사용하고 있지만 이것이 다른 많은 unix 쉘에도 적용된다고 생각합니다. 이 noclobber옵션은 때때로 유용합니다:

> find . -name z
> set -o noclobber
> echo "dog" > z
> echo "dog" > z
-bash: z: cannot overwrite existing file

하지만 새 쉘을 시작하지 않고 설정을 해제하는 방법은 무엇입니까? 이상하게도 , 및 유사한 항목을 검색해도 bash undo set noclobber답변 unix un-do set noclobber이 빨리 나오지 않았습니다.

다음 중 어느 것도 유효하지 않습니다.

> unset -o noclobber
-bash: unset: -o: invalid option
unset: usage: unset [-f] [-v] [name ...]
> unset noclobber
> echo "dog" > z
-bash: z: cannot overwrite existing file
> set -o clobber
-bash: set: clobber: invalid option name

답변1

사람들은 다음에서 답변을 찾을 수 있습니다."set -x"를 실행 취소하는 방법은 무엇입니까?, 그래서 우리는

> set +o noclobber
> echo "dog" > z
> 

다소 직관적이지 않습니다. +무언가를 끄고 -켜십시오.

물론 unset noclobber이렇게 하면 내가 만들었을 수 있는 이름이 지정된 모든 변수가 삭제됩니다 noclobber. 이는 UNIX 옵션에는 영향을 주지 않습니다.

관련 정보