首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我意外地退出了:x!~,现在我的~出现在另一条路上。

我意外地退出了:x!~,现在我的~出现在另一条路上。
EN

Unix & Linux用户
提问于 2017-09-01 18:34:42
回答 2查看 242关注 0票数 0

当以根用户身份退出文件时,我输入:x!~并按enter键。现在我有以下几点:

代码语言:javascript
复制
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。如何才能删除新的~而不意外地删除我的实际主页?

EN

回答 2

Unix & Linux用户

发布于 2017-09-01 18:39:01

代码语言:javascript
复制
cd /etc/shinken/services
rm ./~

这件事没什么好说的。通过在./前面指定~,可以阻止shell执行倾斜扩展,它将被视为当前目录中文件的名称。

另一个选择是

代码语言:javascript
复制
cd /etc/shinken/services
rm '~'

或者只是

代码语言:javascript
复制
rm /etc/shinken/services/~

在Vi和Vim中,:x将像:wq一样工作,并在退出之前编写文件。通过附加文件名(本例中为~),将写入具有给定名称的文件。这两个命令的不同之处在于,只有在上次保存后修改了当前缓冲区时,:x才会写入文件。!重写写入只读文件.

票数 3
EN

Unix & Linux用户

发布于 2017-09-01 18:40:26

代码语言:javascript
复制
rm -- '~'

~周围的单引号阻止bash展开路径,并简单地将其传递给rm

--阻止rm将任何更多的参数解释为标志,并假设它们都是文件(在本例中没有那么重要,但如果您有一个带有前导-的文件,则很有用)。

您可以先用ls测试这个。

代码语言:javascript
复制
ls -- '~'

例如,在不包含文字'~‘的目录中,您将得到

代码语言:javascript
复制
ls: cannot access '~': No such file or directory

显示ls未修改地接收路径。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/389846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档