Мне нужно нарисовать древовидную структуру следующего кода.
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 /;
(переходит в корень) , mkdir
создает каталоги a b c, но я не могу понять остальную часть строки.
Любые мысли были бы действительно полезны.
Это написано в запутанной манере, и я предполагаю, что это результат базового теста 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
Создает каталоги относительно текущего местоположения. ..
означает подняться на один. Над вашим cwd /a находится /, поэтому вы создаете каталоги /e, затем /a/f, затем /b/a/g.
cd../b/./
В то время как ..
означает родительский каталог, .
означает этот каталог. Таким образом, из /a вы подниметесь на один (..
), затем в /b, а затем останетесь там, где находитесь(.
).
Завершающий символ /
после имени каталога означает только то, что это каталог и является необязательным.
mkdir /a/k a/b../a/./b /c
Опять же, это нужно разбить, поскольку очевидно, что это сбивает с толку. Создает /a/k, так как начальный /
означает абсолютный путь, затем /b/a/b, поскольку вы уже находитесь в /b и относительный (не начинается с / ).Далее идет /a/b, так как вы уже находитесь в /b и .
ничего не делает. Затем он попытается создать /c, но он уже существует.
Я бы посоветовал поработать с этим самостоятельно в командной строке и посмотреть, есть ли в этом смысл.
tree
может визуализировать то, что вы хотите, хотя ваша команда будет ошибкой, как указал terdon . Вам нужно будет сказать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