echo "text" >> 'Users/Name/Desktop/TheAccount.txt'
如何使它創建文件,如果它不存在,但覆蓋它,如果它已經存在。現在這個腳本只是附加。寫入文件,但覆蓋它,如果它存在
echo "text" >> 'Users/Name/Desktop/TheAccount.txt'
如何使它創建文件,如果它不存在,但覆蓋它,如果它已經存在。現在這個腳本只是附加。寫入文件,但覆蓋它,如果它存在
對* nix管道如何工作有一點了解會有所幫助。
簡而言之,>>
重定向操作符會將行追加到指定文件的末尾,其中 - 大於>
的單個將清空並覆蓋該文件。
echo "text" > 'Users/Name/Desktop/TheAccount.txt'
某些環境不允許使用`-bash:TheAccount.txt:無法覆蓋現有文件`。 – 2017-03-27 07:37:13
另外,`>`和`>>`是*輸出重定向*運算符。管道操作符是`|`。 – 2017-03-27 07:39:54
查看@BrDaHa的答案。使用`> |`強制覆蓋現有的 – Jake 2018-01-16 03:27:10
儘管NylonSmile
's answer,這是 「之類的」 正確的..我無法覆蓋文件,以這種方式..
echo "i know about Pipes, girlfriend" > thatAnswer
zsh: file exists: thatAnswer
解決我的問題..我不得不使用... >!
,點菜 ..
[[ $FORCE_IT == 'YES' ]] && echo "[email protected]" >! "$X" || echo "[email protected]" > "$X"
顯然,要小心對待這個...
這意味着你有非默認的zsh選項`NOCLOBBER`集合。使用`setopt clobber`來恢復默認行爲。 – 2014-05-10 21:08:32
#!/bin/bash
cat <<EOF > SampleFile
Put Some text here
Put some text here
Put some text here
EOF
如果你有一個可以有錯誤輸出,您可能需要使用一個符號和大於,如下所示:
my_task &> 'Users/Name/Desktop/task_output.log'
這會將stderr和stdout重定向到日誌文件(而不是stdout)。
well..this真棒。我承認>比「更早一點」。 – Jokester 2011-01-13 04:24:19