На этот вопрос уже есть ответ здесь:
Я совсем новичок в ОС unix/linux. Я установил Ubuntu 16.04.2 LTS в свою систему.
В чем разница между cd
и cd ...
?
Я открыл терминал и выполнил следующую команду: pwd
.
Это дало мне /home/avinash
Теперь я выполнил cd ...
и это дало мне /home$
Затем я выполнил команду cd
и затем дал pwd
, которая вернула /home/avinash/
Может ли кто-нибудь объяснить разницу между cd
и cd ...
?
Различие - это cd
единственная команда, никакие аргументы. Если нет никаких аргументов, cd
перейдет к Вашей домашней папке по умолчанию. Теперь, в отличие от этого ..
всегда означает "один каталог" или родительский каталог. Таким образом, когда Вы делаете cd ..
это повысится один уровень. И это всегда верно, за исключением /
папка, потому что существует больше нигде для движения. Вот демонстрация:
$ pwd
/etc
$ cd ..
$ pwd
/
$ cd ..
$ pwd
/
Таким образом, где две команды полезны? cd
перейдет назад к Вашему корневому каталогу, который совпадает с выполнением cd ~
или выполнение cd $HOME
. Это означает, что, если Вы где-нибудь очень очень глубоки в дереве каталогов, можно быстро и легко вернуться к корневому каталогу. Вот пример:
$ pwd
/sys/class/block/sda1/holders
$ cd
$ pwd
/home/xieerqi
С ..
можно также сделать прохладные вещи. Скажем, я нахожусь в /sys/class/block/sda1/holders
папка и я хотим быстро перейти к 3 уровням. Таким образом, мы можем сделать это:
$ pwd
/sys/class/block/sda1/holders
$ cd ../../../
$ pwd
/sys/class
То, что также может быть сделано, должно сделать функцию из этого. Мы можем перейти легче путем определения многих уровней для восстановления работоспособности.Вот:
goup() {
num=$1
while [ $num -ne 0 ]
do
cd ..
num=$(expr $num - 1 )
done
}
Знание этого cd ..
повышается один уровень, почему бы не указать, сколько раз мы хотим повторить cd ..
? Это точно, что делает этот цикл с условием продолжения. И здесь это в действии:
$ pwd
/sys/class/block/sda1/holders
$ goup 4
$ pwd
/sys
cd
Вы войдете в свой корневой каталогcd ..
Вы разбудите один каталог в дереве каталоговcd
команда заберет, Вы к Вашему корневому каталогу непосредственно, не имеете значения, где когда-либо Вы.
cd ..
заберет Вас всего один шаг назад, т.е. к родительскому каталогу текущего каталога.
Это - одна команда, но ..
параметр cd
. Параметр ..
всегда средства, которые Вы хотите, идут один каталог в Linux.
Команда cd
получите Вас в свой корневой каталог:
root@test:/etc/init# cd
root@test:~#
Команда cd
с параметром ..
получите Вас один каталог в дереве каталогов, где Вы являетесь фактическими
root@test:/etc/init# cd ..
root@test:/etc# cd /etc/init
Существует другой параметр как .
чьи средства, которые Вы всегда хотите, переходят к текущему каталогу. Вы видите это при списке дерева:
root@test:/etc/init# ls -la
razem 248
drwxr-xr-x 2 root root 4096 lip 10 15:06 .
drwxr-xr-x 140 root root 12288 lip 10 15:07 ..
-rw-r--r-- 1 root root 338 kwi 9 2016 acpid.conf
-rw-r--r-- 1 root root 278 gru 28 2014 anacron.conf
-rw-r--r-- 1 root root 3709 mar 16 04:05 apparmor.conf
-rw-r--r-- 1 root root 1626 kwi 10 14:16 apport.conf
Как Вы видят, всегда Вы индексировали на системном файле текущий каталог как .
, затем передайте каталогу с помощью ..
, и затем следующий каталог/файлы, переданный вниз в дереве Unix.