在删除受保护的文件时如何避免多次发出“ y”的需要


52

我正在寻找一种解决方案,以用作对“ rm:删除受写保护的常规文件[x]?”的响应。

我正在考虑在bashrc中发布一个字符,然后多次回车。我们该怎么做?


您可以定义一个函数。这个风俗可以为您提供帮助:stackoverflow.com/questions/756756/…
alpert

为什么要这样做?无论如何,要打印回车符(而不是换行符)是非常不明显的任务,并且在.bashrc中?
13年

@ l0b0问题已被编辑为更具体
Iancovici

为什么要删除.bashrc中的文件?原始任务仍然不清楚。
l0b0

3
@echadromani在SO / SE上,尝试理解原始问题以提供可能适用于其他情况的最佳解决方案是很常见的。
l0b0

Answers:


75

根据更新的问题进行编辑:

为了避免被询问删除文件,请添加-f(“ force”)选项:

rm -f /path/to/file

这有一个副作用,您应该意识到:如果任何给定的路径都不存在,它将不会报告此错误,并且将成功返回:

$ rm -f /nonexistent/path
$ echo $?
0

原始答案:

这是一个简单的解决方案:

yes "$string" | head -n $number | tr $'\n' $'\r'

yes无限重复您输入的任何字符串,并用换行符分隔。有时会head停止它$number,并将tr换行符转换为回车符。由于回车,您可能看不到任何输出,但是将其传递给此命令(在中bash)应该可以说明:

printf %q "$(yes "$string" | head -n $number | tr $'\n' $'\r')"

没有的用户bash可以将结果传递给odhexdumpxxd查看返回的实际字符。


7

我不时遇到的另一个问题rmrm -i/ etc / bashrc中的类似别名:

alias rm='rm -i'

在这种情况下,unalias rm您可以使用我几年前发现的技巧,也可以在已别名的命令前面加上反斜杠,以仅一次忽略别名,例如:

\rm somefile

您可以通过Nixcraft上的文章了解有关别名的更多信息。


5

rm硬编码要求对写保护的文件“交互地”(提示等待用户输入)。有两种方法可以防止rm询问:

rm -rf somedir

rm -r --interactive=never somedir

(这两种方法也都可以-r在删除文件而不是目录时使用)

说明:

-f使rm“忽略不存在的文件和参数,从不提示”。

--interactive=never做到了它所说的:永远不要互动。换句话说:永远不要提示。

之间的差别-f,并--interactive=never为这部分:“忽略不存在的文件和参数”。

相比:

$ rm -rf nonexistingname
$ echo $?
0

$ rm -r --interactive=never nonexistingname
rm: cannot remove 'nonexistingname': No such file or directory
$ echo $?
1

在编写脚本时,您根本不想rm交互,但仍然想处理错误,这种区别主要是很有趣的。

摘要:在命令行上使用rm -rf。在脚本中使用rm -r --interactive=never


有关所述问题的答案(“如何避免在删除受保护文件时多次发出“ y”的问题”),请参见https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line / 338860#338860


1

只需对所有命令给出是!

yes | rm -r /path/
yes | <command>

无论如何,您始终可以强制使用-f

rm -r -f /path

-2

我也遇到了同样的问题。上面的答案仅适用于一个文件,但是如果您想忽略很多“是”。

您可以使用

sudo rm -r /path/to/directory

删除所有写保护的常规文件


之所以这样,是因为它删除了整个目录。大概OP只想删除有问题的文件,而不是同一目录子树中的每个文件。
杰克

嘿...。也许你是对的。
Gopal Prasad

嘿...。也许你是对的。但是在这种情况下不是。。好像用户有足够的耐心和时间,那么他也有时间多次给出“是” ...我假设他想用一个命令删除所有文件。受保护的文件在删除此类文件之前总是要求确认。.例如,当您创建virtualenv并随后要在python中删除时。您必须提供答案。.我已经通过这种方式解决了这种情况。
Gopal Prasad
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.