我需要绘制以下代码的树结构。
cd /; mkdir a b c a/a b/a; cd a; mkdir ../e ../a/f ../b/a/g; cd../b/./; mkdir /a/k a/b ../a/./b /c
我知道: cd /;
(goes to root) ,mkdir
创建目录 abc 但我无法理解该行的其余部分。
任何想法都会非常有帮助。
答案1
这是以令人困惑的方式编写的,我假设来自基本的 linux/unix 测试。我可以解释。如果是多行的话,看起来会更清晰。这 ; char 表示命令结束。 mkdir 命令一次可以执行多项操作。
cd /
您将位于 / 作为当前工作目录。
mkdir a b c a/a b/a
创建相对于您的 cwd 的目录:/a、/b、/c、/a/a、/b/a
cd a
你的 cwd 变成 /a
mkdir ../e ../a/f ../b/a/g
创建相对于当前位置的目录。..
上升一级的手段。/a 的 cwd 上方是 /,因此您创建 /e,然后创建 /a/f,然后创建 /b/a/g 目录。
cd ../b/./
while..
表示父目录,.
表示本目录。因此,从 /a 开始,您将向上移动一个 ( ..
),然后进入 /b,然后停留在当前位置 ( .
)。
目录名后面的尾随/
仅意味着它是一个目录并且是可选的。
mkdir /a/k a/b ../a/./b /c
同样,这需要分解,因为它显然是写得令人困惑的。创建 /a/k,因为前导/
意味着绝对路径,然后创建 /b/a/b,因为您已经在 /b 中并且它是相对路径(不以 / 开头)。接下来是 /a/b 因为你已经在 /b 中并且.
什么也不做。然后它会尝试创建 /c 但它已经存在。
我建议您自己在命令行上完成此操作,看看是否有意义。
答案2
tree
可以可视化你想要的东西,尽管你的命令会出错特登指出。你需要它说cd ../b/./;
如果您安装tree
,运行命令,然后tree
在您的目录中运行/
,您将看到您创建的完整目录树。
[root@host /]# tree -a a
a
|-- a
|-- b
|-- f
`-- k
4 directories, 0 files
[root@host /]# tree -a b
b
`-- a
|-- b
`-- g
3 directories, 0 files
[root@host /]# tree -a c
c
0 directories, 0 files
[root@host /]# tree -a e
e
0 directories, 0 files