Что делает перенаправление с> | делать?

16

Когда вы должны использовать >|для перенаправления вывода в файл, а не просто >?

Объяснение, которое было дано, когда мне показали, что оно гарантировало, что целевой файл был обрезан первым. Но я думал, что >уже подразумевал это.

Это >|полезно?

Angelo
источник

Ответы:

16

Это явный обход noclobberопции.

Таким образом, вы можете перезаписать файл даже с помощью noclobberset.

Смотрите http://mywiki.wooledge.org/NoClobber

От man bash:

Если оператор перенаправления>> и опция noclobber для встроенного набора включена, перенаправление завершится ошибкой, если существует файл, имя которого является результатом расширения слова и является обычным файлом. Если оператор перенаправления>> или оператор перенаправления> и опция noclobber для встроенной команды set не включена, перенаправление выполняется даже в том случае, если существует файл, названный словом.

Жиль Квено
источник
8

От man bash:

         -C      If set, bash does not overwrite an  existing  file  with
                  the  >,  >&,  and <> redirection operators.  This may be
                  overridden when creating output files by using the redi
                  rection operator >| instead of >.
Михась
источник