Что означают эти две команды?
cd ../
cd /..
Я попал в две директории вверх по дереву по первой команде и в корневой каталог по второй команде. Почему это происходит?
A /
в конце названия каталога/папки является дополнительным. Большую часть времени, включая или исключение заключительной наклонной черты в имени каталога не изменяет эффект команды.
Так cd ../
эквивалентно cd ..
.
Пути, которые не запускаются с a /
относительные пути; они разрешены относительно текущего каталога.
Каждый каталог имеет две специальных записи:
.
это решает к самому каталогу..
это решает к родителю каталога (т.е. каталог, который содержит тот каталог),Поэтому cd ../
и cd ..
каталог изменения к родителю текущего каталога. Таким образом, если Вы начинаете в /home/fazlan
и выполненный cd ..
или cd ../
, Вы закончите в /home
.
Напротив, /..
полный путь (хотя необычный). /
корень файловой системы - каталог, который Вы получаете к тому, если Вы поднимаетесь в иерархии каталогов полностью. (Используя ту же родительскую и дочернюю метафору, говорим мы /
предок всего в файловой системе.)
С тех пор ..
означает "родительский каталог этого каталога" и /
означает "вершину файловой системы", /..
означает "родительский каталог вершины файловой системы".
Но что означает говорить о каталоге, который содержит /
? Ну, /
исключение. Так как никакой каталог не содержит его, мы говорим это /
родитель самостоятельно. Поэтому в /
, ..
/
. Следовательно, /..
совпадает с /
.
Это то, почему cd ../
приносит Вам один каталог от того, где Вы запустили, в то время как cd /..
приносит Вам к очень главному. Более изящный и легко чтение способы сделать эти вещи cd ..
и cd /
, соответственно.
Первым является относительный путь. Вторым является полный путь.
.. оператор в том средстве аргумента перемещает то вверх.
наклонная черта если не в передней стороне означает подразделение имени подкаталога.
наклонная черта, когда в передней стороне означает "Это, является полным путем. Запустите в корневом каталоге".. отбрасывается, так как Вы не можете отступить дальше. (Было время, когда многие из них позволили Вам повреждать chroots)
Единственная точка (.) представляет текущий каталог. На самом деле, если бы Вы выполнились cd .
, то это поместило бы Вас в Ваш текущий каталог (который, казалось бы, ничего не сделал бы). Если бы необходимо было скопировать что-то от/dir1 до текущего dir, то Вы могли бы сделать это как это:
cp /dir1/somefile.txt .
Выполнение cd ..
приносит Вам один уровень каталога. cd ../
делает то же. Если бы Вы хотели подняться два уровни, то Вы добавили бы еще две точки на конце, как это:
cd ../..
Для возврата к корневому каталогу можно выполниться cd /
. Теперь скажем, я выполнил следующее:
cd /dir1/dir2/dir3/..
, Который помещает меня в/dir1/dir2 каталог, потому что (поскольку мы установили выше) эти ..
говорит этому повышаться один уровень. Таким образом, это переходит к dir3 и затем повышается.
вызовом a cd /..
Вы говорите этому переходить к корневому каталогу /
и затем одному уровню, который это не может сделать. Таким образом, это эффективно оставляет Вас в корневом каталоге, вместо этого.