echo "text" >> 'Users/Name/Desktop/TheAccount.txt'
파일이 존재하지 않으면 파일을 작성하지만 이미 존재하는 경우 파일을 덮어 쓰도록하려면 어떻게해야합니까? 지금이 스크립트는 추가합니다.
답변
* nix 파이프의 작동 방식에 대한 약간의 이해가 도움이 될 것입니다.
간단히 말해서, 경로 >>
재 지정 연산자는 지정된 파일의 끝에 행을 추가 >
합니다.
echo "text" > 'Users/Name/Desktop/TheAccount.txt'
답변
Bash에서 noclobber a la를 설정 set -o noclobber
한 경우 구문을 사용합니다>|
예를 들면 다음과 같습니다.
echo "some text" >| existing_file
파일이 아직없는 경우에도 작동합니다
답변
NylonSmile
의 답변 에도 불구하고 “정렬 한”맞습니다. 이 방법으로 파일 을 덮어 쓸 수 없었습니다 .
echo "i know about Pipes, girlfriend" > thatAnswer
zsh: file exists: thatAnswer
내 문제를 해결하기 위해 .. 내가 사용했다 … >!
, 일품 ..
[[ $FORCE_IT == 'YES' ]] && echo "$@" >! "$X" || echo "$@" > "$X"
분명히, 이것을 조심하십시오 …
답변
환경에서로 덮어 쓰기를 허용하지 않으면 다음과 같이 >
파이프 |
를 tee
사용하십시오.
echo "text" | tee 'Users/Name/Desktop/TheAccount.txt'
이것은 stdout에도 인쇄됩니다. 원하지 않는 경우 /dev/null
다음과 같이 출력을 리디렉션 할 수 있습니다 .
echo "text" | tee 'Users/Name/Desktop/TheAccount.txt' > /dev/null
답변
#!/bin/bash
cat <<EOF > SampleFile
Put Some text here
Put some text here
Put some text here
EOF
답변
noclobber 설정 (예 :)이있는 동안 std :: cerr 및 std :: cout을 파일로 리디렉션하려는 경우 set -o noclobber
코드를 사용할 수 있습니다.
cmd >|file.txt 2>&1
이에 대한 자세한 내용은 https://stackoverflow.com/a/876242 에서 확인할 수 있습니다 .
또한이 답변이 제공하는 응답 @BrDaHa에 TuBui의 질문 @의 위 9시 34분에서 8월 9일 ’18에서.