单个“mkdir”命令可以创建一个新目录并同时更改到该目录?

单个“mkdir”命令可以创建一个新目录并同时更改到该目录?

快速提问:

是否可以使用“mkdir”创建一个新目录并使用单个“mkdir”命令同时更改到该目录?

整个问题:

我有这个问题:

What single Linux “mkdir” command could replace the sequence of commands?
         mkdir a
         cd a
         mkdir b
         cd b
         mkdir c
         cd ../..

我的回答是:

         mkdir a b c && cd c

是否有一个“mkdir”命令,在不使用任何其他命令的情况下,也许带有一些标志或其他东西,我可以用来同时创建和更改目录?

答案1

您提出的使用单个mkdir命令执行与其他步骤相同的操作的问题并不真正涉及更改目录。它结束时cd ../..会将您带回到开始时所在的目录。

实际上,该命令序列创建了一个目录a,然后是其中的一个目录b(换句话说, ),然后是刚刚创建的a/b目录(换句话说,.)cba/b/c

mkdir您可以使用在创建父目录后创建嵌套目录的单个命令执行相同的操作:

mkdir a a/b a/b/c

另一种方法是使用mkdirs-p选项,如果需要,它将创建父目录,因此您不需要指定它们:

mkdir -p a/b/c

这并没有回答您在标题中的问题(对于 mkdir + cd 查看注释中的重复项),而是解决了文本中的问题,关于mkdir该序列的等效单个命令,其中在序列的末尾目录与其开头相同。

答案2

将其作为函数来执行:

mkcdir ()
{
    mkdir -p -- "$1" &&
      cd -P -- "$1"
}

相关内容