让我们继续学习Linux文件系统树结构,并展示如何在其中创建目录。如果您是本系列(和Linux)的新手,请查看我们的第一期。在那篇文章中,我们介绍了Linux文件系统(或者说文件层次结构标准,FHS)的树结构。我建议您仔细阅读它以确保您了解您可以安全地做什么。因为这一次,我要向您展示目录操作的魔力。在销毁新目录之前,让我们先创建它。首先,打开一个终端窗口并使用命令mkdir创建一个新目录,如下所示:mkdir如果您只输入一个目录名,该目录将出现在您当前所在的目录中。如果您刚刚打开一个终端,您的当前位置是您的主目录。在这个例子中,我们展示了要创建的目录与你当前位置的关系:$pwd#告诉你你在哪里(见第1部分)/home/$mkdirnewdirectory#create/home//newdirectory(注意:#后面的文字不需要输入,#后面的文字是解释发生了什么的注释,会被shell忽略,不会被执行)。您可以通过在命令行中指定在当前位置已存在的目录下创建一个新目录:mkdirDocuments/Letters这将在Documents目录中创建一个Letters目录。您还可以在路径中使用..来创建比当前目录高一级的目录。假设您在刚刚创建的Documents/Letters/目录中,并且您想要创建一个Documents/Memos/目录。您可以这样做:cdDocuments/Letters#进入您刚刚创建的Letters/目录mkdir../Memos同样,以上所有操作都是相对于您的当前位置完成的。这是使用相对路径。您还可以使用目录的绝对路径:这意味着告诉mkdir命令将目录相对于根目录(/)放置:mkdir/home//Documents/Letters在上面的命令中,将更改为对于您的用户名,这相当于从您的主目录执行mkdirDocuments/Letters,并且通过使用绝对路径,您可以在目录树中的任何位置完成此操作。无论您使用相对路径还是绝对路径,只要命令成功,mkdir都会在没有任何明显反馈的情况下静默创建新目录。只有当遇到某种问题时,mkdir才会在您按下回车键后打印一些反馈信息。与大多数其他命令行工具一样,mkdir提供了几个有趣的选项。-p选项特别有用,因为它允许您创建嵌套目录,即使它们尚不存在。例如,要在Documents/中为写给妈妈的信件创建一个目录,您可以这样做:当您键入此命令时,它上面的目录已经存在。您还可以通过用空格分隔目录名来一次创建多个目录:mkdirLettersMemosReports这将在当前目录中创建目录Letters、Memos和Reports。目录名中可怕的空格...这提出了关于目录名中空格的棘手问题。可以在目录名中使用空格吗?是的你可以。那么建议大家使用空格吗?不,绝对不推荐。空格会使一切复杂化,并且可能是危险的操作。假设您要创建一个名为lettersmom/的目录。如果你不知道如何更好地处理它,你可能会输入:mkdirlettersmom但那是错误的!不正确!不正确!如上所述,这将创建两个目录letters/和mom/,而不是一个目录lettersmom/。诚然,这是一个小麻烦:您所要做的就是删除这两个目录并重新开始,这没什么大不了的。可是等等!删除目录可能是一项危险的操作。假设您使用图形工具Dolphin或Nautilus创建了目录字母mom/。如果你突然决定从终端删除目录lettersmom,而你在同一目录中有另一个名为letters的目录,并且该目录包含重要文件,你最终尝试以下删除错误的目录:rmdirlettersmom你将冒删除目录字母的风险。我在这里说“风险”是因为幸运的是,用于删除目录的rmdir命令有一个内置的安全措施,如果您尝试删除一个非空目录,它会警告您。但是,以下命令:rm-Rflettersmom(注意:这是删除目录及其内容的非常标准的方法)将完全删除letters/目录,甚至不会告诉您刚刚发生了什么。)rm命令用于删除文件和目录。当你与选项-R(递归删除)和-f(强制删除)一起使用时,它会深入目录及其子目录,删除它们包含的所有文件,并删除子目录本身,然后它会删除所有顶层目录中的文件,然后删除目录本身。rm-Rf是您必须非常小心处理的命令。我的建议是你可以使用下划线代替空格,但如果你仍然坚持使用空格,有两种方法可以使它们起作用。您可以使用单引号或双引号,如下所示:mkdir'lettersmom'mkdir"lettersdad"或者,您可以转义空格。一些字符对shell有特殊的意义。如您所见,空格用于分隔命令行中的选项和参数。“分离选项和参数”属于“特殊含义”的范畴。当你想让shell忽略某个字符的特殊含义,需要对其进行转义时,可以在其前面加一个反斜杠(\),如:mkdirletters\mommkdirletter\dad还有其他特殊字符需要要转义,例如撇号或单引号(')、双引号(")和符号(&):mkdirmom\\&\dad\'s\letters我知道你在想什么:如果反斜杠有一个特殊含义(即告诉shell它必须转义下一个字符),这也使它成为一个特殊字符。那么,你将如何转义转义字符(\)?事实证明,转义任何其他特殊字符也是如此字符方式:mkdirspecial\\characters这将创建一个名为special\characters/的目录。困惑?当然。这就是您应该避免在目录名称中使用特殊字符(包括空格)的原因。如遇误操作,可参考以下特殊字符列表进行记录。(LCTT译注:此处失去原文链接。)总结使用mkdir创建一个新目录。使用rmdir删除目录(仅在目录为空时有效)。使用rm-Rf完全删除目录及其内容——谨慎使用。使用相对路径创建相对于当前目录的目录:mkdirnewdir。使用绝对路径创建相对于根(/)的目录:mkdir/home//newdir。使用..在当前目录之上创建一个目录:mkdir../newdir。您可以通过在命令行中用空格分隔目录名称来创建多个目录:mkdironedirtwodirthreedir。同时创建多个目录时,可以混合使用相对路径和绝对路径:mkdironedirtwodir/home//threedir。在目录名中使用空格和特殊字符确实会让您头疼,最好不要这样做。有关详细信息,您可以查看mkdir、rmdir和rm的手册页:manmkdirmanrmdirmanrm要退出手册页,请按键盘上的q键。