我需要删除我的主目录中的“~”文件夹。
我现在意识到这rm -R ~
是一个糟糕的选择。
我可以安全使用吗rm -R "~"
?
答案1
理论上是的。在实践中通常也是如此。如果您调用的 shell 脚本或别名执行了一些奇怪的操作,那么可能不会。
您可以使用echo
shell 来查看特定命令将扩展为什么:
$ echo rm -R ~
rm -R /home/frostschutz
$ echo rm -R "~"
rm -R ~
请注意,echo
删除 ,""
因此您不应该复制粘贴它打印的内容。它只是表明,如果您给出"~"
,该命令会按字面意思看到~
,而不是扩展/home/frostschutz
路径。
如果您对任何命令有任何疑问,是否可以从一些不太致命的命令开始,如果它出错的话?对于您的情况,您可以从重命名开始,而不是直接删除它。
$ mv "~" delete-me
$ ls delete-me
# if everything is in order
$ rm -R delete-me
对于通常不应该存在的令人困惑的文件名(例如以或~
开头的其他名称,或包含换行符等),安全总比后悔好。~
还可以考虑使用制表符补全(输入ls ~<TAB><TAB><TAB>
),大多数 shell 都会尽力照顾您,这也有助于避免输错常规文件名。
答案2
正如 Kalvin Lee 提到的,您可以cd
到该目录并删除其内容,然后使用rmdir
删除该目录。我推荐这种rm -R
方法,因为您不太可能误操作命令并破坏您的主目录。
一般来说,您可以将不希望 shell 展开的内容放在单引号中。这将删除一个名为 的空目录~
:
rmdir '~'
答案3
除了frostschutz的双引号方法和Andy的简单引用方法之外,还有更短的:
rm -r \~
以及相对路径一:
rm -rf ./~
答案4
我知道这个问题已经得到解答,但我总是使用mc
- Midnight Commander 来删除我不敢尝试删除的尴尬文件。它是一个类似“GUI”的界面,您只需突出显示要删除的文件,然后将其删除。