zsh: Вимкнути попередження "файл існує:" із перенаправленням


26

Як я можу змінити file exists:попередження від zsh?

> echo > newfile.txt
> echo > newfile.txt  
zsh: file exists: newfile.txt  

У цих випадках я вважаю за краще, щоб моя оболонка не скаржилася і просто перезаписала файл, як bash.

Аналогічно, як перекрити таке:

$ ls >> /tmp/testfile.txt                                                                                                                                                   
zsh: no such file or directory: /tmp/testfile.txt

2
set +Cмає бути довше для коментаря. Але, можливо, це тому, що я не зміг згадати >|про випадки одноразового використання.
mikeserv

Відповіді:



42

Ви можете змусити ZSH клопотатись про переадресацію за допомогою:

>!

Те саме, що і>, за винятком того, що файл усічений на нульову довжину, якщо він існує, навіть якщо CLOBBER не встановлений.

або

>>!

Те саме, що >>, за винятком того, що файл створюється, якщо його не існує, навіть якщо CLOBBER не встановлений.


19

Інші рекомендували використовувати >!або , >>!але це не стандарт POSIX. POSIx сумісний спосіб перезаписування файлів без підказки - це використання >|або >>|це працюватиме в будь-якій оболонці.

Інформацію дивіться тут: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_02

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.