以下两个redirect命令有什么区别?
ls > out
ls >| out
他们似乎都产生了相同的产出。
根据[1]的不同是>| 即使设置了noclobber选项,也会将输出redirect到文件。
noclobber选项是由bash的命令行选项-C设置的,并防止通过redirect覆盖文件[2]。 当noclobber选项被设置时,则ls >| out ls >| out将文件覆盖out ,而ls > out不会。
[1] http://tldp.org/LDP/abs/html/special-chars.html
[2] http://tldp.org/LDP/abs/html/options.html#NOCLOBBERREF