Вы не можете отменить в Thunar (см. комментарий 9 , в частности ). Вместо этого вы можете использовать что-то вроде Dolphin, более мощное .
В echo 0 > file.txt
с пробелами > file.txt
заставляет оболочку перенаправить стандартный вывод так, чтобы он был записан вfile.txt
(после усечения файла, если он уже существует ). Остальная часть команды echo 0
выполняется с установленными перенаправлениями.
Когда перед оператором перенаправления стоит число без кавычек без разделения, перенаправление применяется к соответствующему файловому дескриптору вместо значения по умолчанию. 0 — это файловый дескриптор для стандартного ввода , поэтому 0> file.txt
перенаправляет стандартный ввод на file.txt
. (1 — стандартный вывод, 2 — стандартная ошибка. )Число рассматривается как часть оператора перенаправления, а не как часть аргументов команды; осталось только echo
.
Вы можете увидеть, как это происходит, если вы включите больше контента в аргументы echo
:
$ echo number 0 > file.txt
$ echo number 0> file.txt
number
number
отображается во втором случае, потому что стандартный вывод не перенаправляется.
Этот вариант оператора перенаправления чаще всего выполняется со стандартной ошибкой, 2> file.txt
.
Перенаправление стандартного ввода таким образом сломает все, что на самом деле пытается читать из стандартного ввода; если вы действительно хотите перенаправить стандартный ввод, разрешив запись, вы можете сделать это с помощью оператора <>
:
cat 0<> file.txt
Нулевой файловый дескриптор является входным потоком. 0>filename поместит входной поток в имя файла. 0 > имя файла поместит 0 в имя файла файла. Обратите внимание на интервал.