Мне нужно очистить файл журнала с помощью:
cat /dev/null > error.log
Проблема в том, что файл принадлежит root
-rw-r--r-- 1 root root 15505 Feb 9 15:08 error.log
и это не работает
$ sudo cat /dev/null > error.log
-bash: error.log: Permission denied
Понятия не имею, почему ... так как я могу обойти это?
Попробуй это:
$ sudo sh -c "cat /dev/null > error.log"
Проблема в том, что с помощью команды, которую вы использовали, вы действительно выполняете две команды: первая кошка запускается как root (через sudo), а все остальное запускается как ваш пользователь. Вышеупомянутый метод решает эту проблему.
это ответ на U&L содержит дополнительную информацию по этому поводу.