Як я можу переходити по одному каталогу з терміналу?


16

Питання Super noob: Я можу переміщатися в каталозі за cdдопомогою терміналу. Як перейти назад, якщо я зайшов занадто далеко?



unix.stackexchange.com/a/81232/18237 чудово підходить для роботи в декількох гілках каталогів та відмітки "початкової" точки, до якої потрібно повернутися
Матео

Я знаю, що ніхто з вас не хоче визнати, що ви були такі дурні, але це питання просто вразило 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 правда, це також можна зробити. . . . Але я вважаю за краще використовувати while + counter для імітації циклу. Я раніше задавав відповідне запитання на сайті U&L
Сергій Колодяжний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.