2011-10-12 19:28:12 +0000 2011-10-12 19:28:12 +0000
94
94

删除文件而不询问

如何在不询问用户是否同意删除文件的情况下删除文件?我正在写shell脚本,使用rm函数,但它问 “删除普通文件?",我真的不需要这个。谢谢你的帮助。

答案 (12)

107
107
107
2011-10-12 19:30:00 +0000

你可能有rm的别名为rm -i,所以可以试试这样做:

/bin/rm -f file.log

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

61
61
61
2011-10-12 19:30:22 +0000

强制标志删除了所有提示;

rm -f {file}

34
34
34
2011-10-12 19:30:10 +0000

愿力量与你同在 - rm -f

6
6
6
2011-10-12 20:52:48 +0000
yes | rm <filename>
yes n | <something interactive>

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

&001

,这样就会在输入流上重复 “n"(有效地回答问题,即 "否")。

5
5
5
2016-07-28 12:15:27 +0000
\rm file

反斜线 ` \rm file

反斜线 绕过别名。

5
5
5
2011-10-12 20:13:31 +0000

在shell脚本中,你会希望使用rm -f <filename>,但你也可以通过在shell(或profile)中输入-i来摆脱环境中的隐式unalias rm选项。

5
5
5
2011-10-12 19:31:52 +0000

如果你有删除文件所需的权限,而你不想被提示,请执行以下操作(-f = force):

rm -f file

如果你没有文件的权限,你需要使用:

sudo rm -f file
1
1
1
2017-03-26 13:45:49 +0000

除了使用-f参数,也可以用find命令来代替,例如:

find -name file.log -delete
0
0
0
2018-03-29 14:28:49 +0000

如果你的rm是别名为rm -i,那么就使用unalias rm

不要直接使用rm -f,除非你真的想删除很多受写保护的文件。

但是,如果你有很多受写保护的文件,你可能会选择-f来提高速度。

0
0
0
2019-09-02 14:37:41 +0000
rm -Rf <folder-to-be-deleted>

-R: 递归 f: force, 无提示

0
0
0
2015-02-25 12:18:42 +0000

目前,我在一个系统中工作,bash shell在全局配置文件中收到了rm命令的定义为函数:

rm () { /bin/rm -i ${1+"$@"}; }

因此,上述关于别名的答案都没有起作用。为了对付这种恼人的行为,我在.bashrc文件

unset -f rm

中取消了rm函数,我也遇到了类似的问题。但是我没有找到任何答案,提到rm可能被shell函数隐藏了。所以我把答案加在这里,希望对遇到同样问题的人有帮助。

一直输入/bin/rmrm -f是很不方便的,可能会造成不好的后果(在rm -f的情况下)。

0
0
0
2019-08-12 07:47:40 +0000

我最喜欢的方法是在bash中使用command命令,就像你使用sudo一样。这样就可以不使用别名,就像用/bin/rm运行命令一样(可能rm的别名是rm -i)。