Bash: Что делает «> |»?

Я только что это записал;

$ some-command >| /tmp/output.txt 

Вертикальные трубы используются в стандартных переадресациях «piping» вывод одной команды в другую, is >| на самом деле совершенно бесполезно, поскольку это было бы так же, как просто > в этом сценарии?

One Solution collect form web for “Bash: Что делает «> |»?”

Это не бесполезно – это специализированная форма простого оператора переадресации (и, возможно, смущаясь, не имеет ничего общего с трубами). bash и большинство других современных оболочек имеют опцию noclobber , которая предотвращает перенаправление или перезапись файла, который уже существует. Например, если noclobber истинно, и файл /tmp/output.txt уже существует, это должно завершиться неудачно:

 $ some-command > /tmp/output.txt 

Однако вы можете явно переопределить настройку noclobber с помощью >| redirection operator – перенаправление будет работать, даже если noclobber установлен.

Вы можете узнать, установлен ли noclobber в вашей текущей среде с помощью set -o .

Для исторической заметки, как опция «noclobber», так и ее байпасные функции происходят из csh (конец 70-х). ksh скопировал его (начало 80-х), но использовал >| вместо >! , POSIX ksh синтаксис ksh (так что все оболочки POSIX, включая bash, более новые производные золы, используемые как sh в некоторых системах, поддерживают его). Zsh поддерживает оба синтаксиса. Я не думаю, что это было добавлено к любому варианту оболочки Bourne, но я могу ошибаться.

Interesting Posts

Не устанавливать $? на ненулевое значение на Control + C

Изменение формата времени для команды касания в BSD

Перенаправление и пробелы вывода

копировать файлы удаленно на одном пути

проблемы печати с принтером DDST (aka PCL6) RICOH Aficio SP C240DN

Функции безопасности, отключенные DCO – как разморозить и восстановить?

Должен ли я устанавливать антивирус?

Проблемы с Exim4 DNS

Синтаксические различия в cp -r и способы их преодоления

curl: (35) error: 14077438: SSL-процедуры: SSL23_GET_SERVER_HELLO: внутренняя ошибка предупреждения tlsv1

Можно ли подключиться к Linux-машине с учетными данными AD без участия компьютера в AD?

Как узнать, когда выполняется ленивый `umount -l`?

Насколько хорошо Debian поддерживает MIPS в наши дни?

Как я могу заставить sudo crontab -e использовать среду `sudoedit`?

Как я могу определить, выполняется ли арифметика с плавающей запятой в аппаратном или программном обеспечении?

Linux и Unix - лучшая ОС в мире.