在 Linux 上操作目录(2)

你将会有删除目录 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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12468.html