Почему «невозможно перезаписать существующий файл»?

Почему «невозможно перезаписать существующий файл»?

Я пытаюсь записать в файл date > file, но Linux говорит

«невозможно перезаписать существующий файл».

Я попробовал chmod 755, но все равно не могу записать в файл. Что мне делать?

решение1

Если вы используете bash, эта noclobberопция установлена. Используйте >|, если хотите временно переопределить ее.

решение2

Отключить noclobber в текущем сеансе оболочки:

set +o noclobber

Включите noclobber в текущем сеансе shelll:

set -o noclobber

Просмотреть все настройки bash:

set -o

Использованная литература:
https://www.victordodon.com/to-clobber-or-to-noclobber/ https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html

решение3

Возможно, файл был установлен как неизменяемый с помощью chattr. Это редко используется, но это реальная возможность. В этом случае:

chattr -i [filename]

... должна быть возможность удалить этот атрибут.

решение4

  1. Перейдите в домашнюю папку.
  2. Нажмите Ctrl+, Hчтобы показать скрытые файлы
  3. Проверьте, не заблокированы ли какие-либо папки.
  4. Щелкните правой кнопкой мыши по папке, затем щелкните «Свойства». В нем щелкните «Разрешения».
  5. В разделе «Владелец» измените права доступа к папке на «создание и удаление файлов».
  6. Нажмите «Применить разрешения к вложенным файлам».

Если вы не видите ни одной заблокированной папки, выберите все папки и выполните указанные выше действия.

Связанный контент