我无意中-r在我的主目录中创建了一个文件。现在我无法摆脱它:
rm -rf
rm: missing operand
Try 'rm --help' for more information.
Run Code Online (Sandbox Code Playgroud)
其他尝试:
rm /-/r
rm: cannot remove ‘/-/r’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
另一个:
rm \-r
rm: missing operand
Try 'rm --help' for more information.
Run Code Online (Sandbox Code Playgroud)
有没有办法删除这个文件而不删除整个目录?
ter*_*don 45
有很多方法可以做到这一点:
使用--表示许多程序(包括rm)的选项标志的结束和参数列表的开始。
rm -- -r
Run Code Online (Sandbox Code Playgroud)使用完整路径
rm /home/you/directory/-r
Run Code Online (Sandbox Code Playgroud)
或者,从同一目录(您的当前目录称为.):
rm ./-r
Run Code Online (Sandbox Code Playgroud)用 find
find . -name "-r" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
或者,获取所有此类文件
find . -name "-*" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)使用丑陋的黑客。将所有内容移动到不同的目录(由于与-r此相同的原因,该文件将失败rm)然后删除原始目录(这将删除文件)并再次将所有内容移回。因此,假设您的-r文件位于~/foo:
$ mkdir ~/bar
$ for f in *; do mv "$f" ../bar/; done
mv: invalid option -- 'r'
Try 'mv --help' for more information.
$ rm -rf ~/foo
$ mkdir ~/foo && cd ~/foo
$ mv ~/bar/* .
$ rmdir ~/bar
Run Code Online (Sandbox Code Playgroud)Ben*_*oit 26
在这种情况下,您必须--在命令参数中使用双破折号 ( )。
它的目的是告诉命令后面的内容不能作为命令的参数,而是一个简单的输入。在rm的情况下,文件或目录名称。
所以输入rm -- -r,你应该摆脱这个文件。
您还可以使用以下命令删除此类文件(以“-”开头):
rm ./-r
Run Code Online (Sandbox Code Playgroud)
请参阅 rm 手册页:
要删除名称以“-”开头的文件,例如“-foo”,请使用以下命令之一:
Run Code Online (Sandbox Code Playgroud)rm -- -foo rm ./-foo
| 归档时间: |
|
| 查看次数: |
17123 次 |
| 最近记录: |