'mkdir ../../$something/$something_else' 是什么意思?

'mkdir ../../$something/$something_else' 是什么意思?

我刚刚读了一些代码,其中包括以下行:

mkdir ../../$something/$something_else

我不知道该如何解释这一点。

答案1

它应该被理解为一种惯例,用于指代不提供实际单词的书面内容,因为人们认为这些单词很无聊或不重要。因为其他$something_else是占位符,例如等等等等等等 mkdir -p ../../$something/$something_else创建一个目录,其名称由您替换其他$something_else如果变量其他$something_else已设置为我的目录(这是一个字符串),然后mkdir -p ../../$something/$something_else创建一个名为我的目录

答案2

解释其作用的最简单方法是展示其作用。

考虑以下 shell 命令:

$ echo $PWD
/home/rick/askubuntu/subdir-A/JSON

echo $PWD上面显示的是我们的当前目录。

$ cd ../../; echo $PWD
/home/rick/askubuntu

上面我们切换到了我们的祖先目录并显示了它的名字。现在让我们切换回我们的原始目录并显示它的名字:

$ cd /home/rick/askubuntu/subdir-A/JSON

$ echo $PWD
/home/rick/askubuntu/subdir-A/JSON

现在您已经了解了什么../../是,让我们将所有内容联系在一起:

$ something=subdir-A
$ something_else=JSON2
$ mkdir ../../"$something"/"$something_else"
$ ls ../
JSON  JSON2

因为something=subdir-A和我们当前的父目录相同,所以这两行是等效的:

$ mkdir ../../"$something"/"$something_else"
$ mkdir ../"$something_else"

如果something=subdir-C这是一个全新的父目录怎么办?那么我们使用的命令就会失败:

$ mkdir ../../"$something"/"$something_else"
mkdir: cannot create directory ‘../../subdir-C/JSON2’: No such file or directory

我们需要使用-p参数来告诉mkdir创建丢失的父目录:

$ something=subdir-C
$ something_else=JSON2
$ mkdir -p ../../"$something"/"$something_else"
$ ls ../../subdir-C
JSON2

相关内容