What is the difference between the following two redirection commands?
ls > out
ls >| out
They both seem to produce the same output.
Согласно [1] разница в том, что >|
перенаправляет вывод в файл, даже если установлена опция ноклоббера. Опция ноклоббера
устанавливается опцией командной строки bash -C
и предотвращает перезапись файлов путем перенаправления [2]. При установке опции ноклоббера 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