Как мне перейти вверх по одному каталогу из терминала?

16

Супер нуб вопрос: я могу перемещаться вниз по каталогу, используя cdиз терминала. Как мне вернуться обратно, если я зайду слишком далеко?

Винс Скалия
источник
3
Возможен ли дубликат Going в родительский каталог файла с cd?
DJCrashdummy
unix.stackexchange.com/a/81232/18237 отлично подходит для работы в нескольких ветвях каталогов и для обозначения «начальной» точки, к которой можно вернуться
Mateo
Я знаю, что никто из вас не хочет признать, что вы были настолько глупы, но этот вопрос только что достиг 1000 просмотров. так хаха, я знаю, что другие люди, как я, там. : P
Винс Скалия

Ответы:

30

cd .. вернет вам ровно один каталог вверх.

Вы можете связать их вместе, чтобы перейти на несколько каталогов, например, до 3

cd ../../..

Вместо того, чтобы вводить cd ..несколько раз, вы можете поместить нижеприведенную функцию в свое .bashrcместо сверху, сохранить .bashrcи запустить source .bashrcили просто закрыть и снова открыть терминал. Теперь у вас есть функция, которая делает cd..именно то, сколько раз вы сказали это.

function goUp {
  num=$1
  while [ $num -ne 0  ];do
    cd ..
    num=$((num-1))
  done
}

Демо-версия:

$ cd /usr/share/backgrounds/                                                  

backgrounds:$ goUp 2

usr:$ 

В качестве альтернативы:

goup(){ 
    cd $(n=$1 awk 'BEGIN{
        for(i=1;i<=ENVIRON["n"];i++) 
            printf "../"}';) 
}

Обратите внимание, что такой метод возвращает вас по символическим ссылкам. Вот что я имею в виду:

$ namei "$PWD" 
f: /home/user/VirtualBox VMs/CentOS
 d /
 d home
 d user
 l VirtualBox VMs -> /mnt/ubuntu/vboxvms
   d /
   d mnt
   d ubuntu
   d vboxvms
 d CentOS

$ goup 2
$ pwd
/home/user

Смотрите также

Сергей Колодяжный
источник
Добавил еще немного информации, проверь.
Сергей Колодяжный
Это может быть просто for i in $(seq "$1"); do cd ..; done.
Deltab
@deltab true, тоже можно сделать. , , Но я предпочитаю использовать while + counter для имитации цикла for. Я уже задавал соответствующий вопрос ранее на сайте U & L
Сергей Колодяжный