无需询问即可删除文件

hey*_*hey 123 linux shell

如何在不询问用户是否同意删除文件的情况下删除文件?我正在编写 shell 脚本并使用 rm 函数,但它询问“删除常规文件?” 我真的不需要这个。

cho*_*own 132

您可能使用rm别名,rm -i所以试试这个:

/bin/rm -f file.log
Run Code Online (Sandbox Code Playgroud)

要查看您的别名,您可以运行alias.

  • 或者,使用 `command rm ...` 或 `\rm ...` 跳过别名/函数 (8认同)
  • 有人认为将 `rm` 别名为 `rm -i` 是一个坏主意。`rm` 命令默认会以静默方式删除命名文件。通过将其别名为 `rm -i`,您可以养成在按 Enter 之前不仔细检查的习惯,这取决于交互提示来保存您。然后你在没有别名的环境中输入 `rm some-important-file`。 (6认同)

lyn*_*nks 74

force 标志删除所有提示;

rm -f {file}

  • 这就是我正在寻找的,而不是公认的答案。 (3认同)

小智 38

愿原力与你同在 - rm -f

  • 我已经对 lynks 的回答投了赞成票,这完全一样。只为幽默感点赞 (7认同)

小智 8

yes程序反复肯定答复任何提示。这样您也可以将其通过管道rm传输到交互式程序中以获得所需的效果。

yes | rm <filename>
Run Code Online (Sandbox Code Playgroud)

相反,如果你不想做一些交互式的事情,你可以做

yes n | <something interactive>
Run Code Online (Sandbox Code Playgroud)

这将在输入流上重复“n”(有效地回答问题)


小智 5

如果您具有删除文件所需的权限并且不想收到提示,请执行以下操作 (-f = force):

rm -f file
Run Code Online (Sandbox Code Playgroud)

如果您没有该文件的权限,则需要使用:

sudo rm -f file
Run Code Online (Sandbox Code Playgroud)


小智 5

在 shell 脚本中,您可能想要使用,rm -f <filename>但您也可以选择-i通过输入unalias rm您的 shell(或配置文件)来摆脱环境的隐式选项。


tek*_*aul 5

\rm file
Run Code Online (Sandbox Code Playgroud)

反斜杠\绕过别名。

  • “\”是一个反斜杠,你是什么意思? (3认同)