Не удалось очистить файл, несмотря на привилегии sudo

Команда:

/etc/passwd >> file.log

пытается выполнить файл /etc/passwd, но /etc/passwdне является исполняемым файлом, отсюда и ошибка отказа в разрешении .

Чтобы перенаправить содержимое файла, вы можете использоватьcat:

cat /etc/passwd >> file.log

(На самом деле вы можете использовать любую другую команду, которая читает файлы и выводит их содержимое на стандартный вывод, например sed '' /etc/passwdили awk 1 /etc/passwd).

0
02.10.2020, 21:46
2 ответа
sudo > api-server-out-0.log

не работает. Что он на самом деле делает, он запускается sudoбез каких-либо параметров и пытается перенаправить свой вывод под вашей учетной записью пользователя в указанный файл, что, конечно, не сработает, поскольку файл принадлежит root.

То, что вы действительно хотите сделать, это что-то вроде

sudo dd if=/dev/null of=api-server-out-0.log
# or
sudo truncate -s 0 api-server-out-0.log
# or
sudo sh -c 'echo -n "" > api-server-out-0.log'
# or
sudo sh -c ': > api-server-out-0.log'
5
18.03.2021, 23:00

Артем С. Ташкинов описал «почему» и предложил некоторые из множества вариантов. Вот еще один способ сделать это:

sudo tee api-server-out-0.log </dev/null
1
18.03.2021, 23:00

Теги

Похожие вопросы