当以根用户身份退出文件时,我输入:x!~并按enter键。现在我有以下几点:
root@host:/etc/shinken/services$ ll
total 64K
-rw-r--r-- 1 0 0 515 Sep 1 18:24 ~
drwxr-xr-x 2 10003 10003 4.0K Sep 1 18:24 .
drwxr-xr-x 29 10003 10003 4.0K Aug 8 17:11 ..
<other files omitted> 如果我是cd ~,它就会像预期的那样带我去/root。如何才能删除新的~而不意外地删除我的实际主页?
发布于 2017-09-01 18:39:01
cd /etc/shinken/services
rm ./~这件事没什么好说的。通过在./前面指定~,可以阻止shell执行倾斜扩展,它将被视为当前目录中文件的名称。
另一个选择是
cd /etc/shinken/services
rm '~'或者只是
rm /etc/shinken/services/~在Vi和Vim中,:x将像:wq一样工作,并在退出之前编写文件。通过附加文件名(本例中为~),将写入具有给定名称的文件。这两个命令的不同之处在于,只有在上次保存后修改了当前缓冲区时,:x才会写入文件。!重写写入只读文件.
发布于 2017-09-01 18:40:26
rm -- '~'~周围的单引号阻止bash展开路径,并简单地将其传递给rm。
--阻止rm将任何更多的参数解释为标志,并假设它们都是文件(在本例中没有那么重要,但如果您有一个带有前导-的文件,则很有用)。
您可以先用ls测试这个。
ls -- '~'例如,在不包含文字'~‘的目录中,您将得到
ls: cannot access '~': No such file or directory显示ls未修改地接收路径。
https://unix.stackexchange.com/questions/389846
复制相似问题