Назад | Перейти на главную страницу

В сценарии bash, в чем разница между> и> | перенаправления?

В чем разница между следующими двумя командами перенаправления?

ls > out
ls >| out

Кажется, что они оба производят одинаковый результат.

Согласно [1] разница в том, что >| перенаправляет вывод в файл, даже если установлена ​​опция noclobber.

Параметр noclobber устанавливается параметром командной строки bash -C и предотвращает перезапись файлов путем перенаправления [2]. Когда установлена ​​опция noclobber, тогда 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