Древовидные структуры и каталоги

Мне нужно нарисовать древовидную структуру следующего кода.

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, но я не могу понять остальную часть строки.

Любые мысли были бы действительно полезны.

0
25.06.2020, 18:12
2 ответа

Это написано в запутанной манере, и я предполагаю, что это результат базового теста 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, но он уже существует.

Я бы посоветовал поработать с этим самостоятельно в командной строке и посмотреть, есть ли в этом смысл.

1
28.04.2021, 23:12

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
1
28.04.2021, 23:12

Теги

Похожие вопросы