Вопрос Разница между 'cd' и 'cd ..' в unix / linux [duplicate]


На этот вопрос уже есть ответ:

Я совершенно новичок в ОС UNIX / Linux. Я установил Ubuntu 16.04.2 LTS в свою систему.

В чем разница между cd а также cd .. ?

Я открыл терминал и выполнил следующую команду: pwd, Это дало мне /home/avinash

Теперь я выполнил cd .. и это дало мне /home$

Затем я выполнил команду cd и затем дал pwd, который вернулся /home/avinash/

Может кто-нибудь объяснить разницу между cd а также cd .. ?


1
2017-07-11 07:14


происхождения


А также askubuntu.com/questions/483129/... - muru
@muru. U отметил мой вопрос как дубликат, и ссылка, которую вы предоставляете, не объясняет две команды, которые я задал. А также два вопроса, связанные с моим вопросом, не отвечают на то, что я спросил - Avinash Reddy
@AvinashReddy: Ответ Пандии объясняет, как cd а также cd .., Я отредактировал вопрос, чтобы явным образом попросить объяснение первого. - David Foerster


ответы:


Разница между командами

Разница в том, что 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 .. ? Именно это делает цикл while. И здесь это в действии:

$ pwd  
/sys/class/block/sda1/holders
$ goup 4
$ pwd
/sys

2
2017-07-11 07:21





  • После выполнения cd вы попадете в свой домашний каталог
  • После выполнения cd .. вы получите один каталог в дереве каталогов

1
2017-07-11 07:19





  1. cd команда вернет вас в ваш домашний каталог напрямую, не имеет значения, где бы вы ни находились.

  2. cd .. вернет вас всего на один шаг назад, то есть в родительский каталог текущего каталога.


1
2017-07-11 07:19





Это одна команда, но .. является параметром 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.


0
2017-07-11 07:25