为什么“无法覆盖现有文件”?

为什么“无法覆盖现有文件”?

我尝试写入文件date > file,但 Linux 说

‘无法覆盖现有文件’。

我尝试过chmod 755,但仍然无法写入文件。我该怎么办?

答案1

如果您正在运行 bash,则该noclobber选项已设置。>|如果您想暂时覆盖此设置,请使用。

答案2

在当前 shell 会话中关闭 noclobber:

set +o noclobber

在当前 shelll 会话中启用 noclobber:

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. 单击“将权限应用于所附文件”

如果你看不到任何锁定的文件夹,请选择所有文件夹并执行上述操作

相关内容