你将会有删除目录 letters 的风险。这里说“风险”,是因为幸运的是rmdir 这条用于删除目录的指令,有一个内置的安全措施,如果你试图删除一个非空目录时,它会发出警告。
但是,下面这个:
rm-Rf letters mom
(注:这是删除目录及其内容的一种非常标准的方式)将完全删除 letters/ 目录,甚至永远不会告诉你刚刚发生了什么。)
rm 命令用于删除文件和目录。当你将它与选项 -R(递归删除)和 -f(强制删除)一起使用时,它会深入到目录及其子目录中,删除它们包含的所有文件,然后删除子目录本身,然后它将删除所有顶层目录中的文件,再然后是删除目录本身。
rm -Rf 是你必须非常小心处理的命令。
我的建议是,你可以使用下划线来代替空格,但如果你仍然坚持使用空格,有两种方法可以使它们起作用。您可以使用单引号或双引号,如下所示:
mkdir'letters mom'
mkdir"letters dad"
或者,你可以转义空格。有些字符对 shell 有特殊意义。正如你所见,空格用于在命令行上分隔选项和参数。 “分离选项和参数”属于“特殊含义”范畴。当你想让 shell 忽略一个字符的特殊含义时,你需要转义,你可以在它前面放一个反斜杠(\)如:
mkdir letters\ mom
mkdir letter\ dad
还有其他特殊字符需要转义,如撇号或单引号('),双引号(“)和&符号(&):
mkdir mom\ \&\ dad\'s\ letters
我知道你在想什么:如果反斜杠有一个特殊的含义(即告诉 shell 它必须转义下一个字符),这也使它成为一个特殊的字符。然后,你将如何转义转义字符(\)?
事实证明,你转义任何其他特殊字符都是同样的方式:
mkdir special\\characters
这将生成一个名为 special\characters/ 的目录。
感觉困惑?当然。这就是为什么你应该避免在目录名中使用特殊字符,包括空格。
以防误操作你可以参考下面这个记录特殊字符的列表。(LCTT 译注:此处原文链接丢失。)
总结使用 mkdir <directory name> 创建新目录。
使用 rmdir <directory name> 删除目录(仅在目录为空时才有效)。
使用 rm -Rf <directory name> 来完全删除目录及其内容 —— 请务必谨慎使用。
使用相对路径创建相对于当前目录的目录: mkdir newdir。
使用绝对路径创建相对于根目录(/)的目录: mkdir /home/<username>/newdir。
使用 .. 在当前目录的上级目录中创建目录: mkdir ../newdir。
你可以通过在命令行上使用空格分隔目录名来创建多个目录: mkdir onedir twodir threedir。
同时创建多个目录时,你可以混合使用相对路径和绝对路径: mkdir onedir twodir /home/<username>/threedir。
在目录名称中使用空格和特殊字符真的会让你很头疼,你最好不要那样做。
���关更多信息,您可以查看 mkdir、rmdir 和 rm 的手册:
manmkdir
manrmdir
manrm
要退出手册页,请按键盘 q 键。
下次预告在下一部分中,你将学习如何创建、修改和删除文件,以及你需要了解的有关权限和特权的所有信息!
通过 Linux 基金会和 edX 免费提供的“Introduction to Linux”课程了解有关Linux的更多信息。
via: https://www.linux.com/blog/learn/2018/5/manipulating-directories-linux