Команда Linux cd ..


9

Скажіть, чи потрібно мені це зробити багато:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

Чи є швидший спосіб не завжди вводити ../../../../стільки разів? Якісь креативні ідеї?


2
чому б просто не виконати cd ../../../..і зробити це з ним?
Червоний крикет

8
Ви можете насолоджуватися pushdі popdнавіть cd -.
jscott

1
Якщо ви їдете так далеко назад, можливо, має сенс просто cd / фактично / шлях / ви / хочете, залежно від того, наскільки глибокі папки проходять.
Дрю Хоурі

Це набагато більше зусиль, ніж варто. Якщо ви переходите між каталогами, простіша специфікація шляху або просто використання cd -( для переходу до останнього каталогу ) простіше. Як правило alias h="history|grep", я можу замість цього використовувати ярлики введення історії. Щось схоже h foo3, після чого !450повторити цю команду.
ewwhite

Відкрийте ще одне вікно терміналу і взагалі не вводите cd ../../../ ..
Метт

Відповіді:


18

Класичним способом цього є встановлення CDPATHзмінної. У вашому випадку це може бути встановлено на .:../../../../або .:/path/to/the/parent/of/fooдосягти бажаного ефекту. Потім можна просто зробити cd foo/sub1/bar/destі дістатися туди, куди хочеш.

Перевагою цього є те, що заповнення вкладок cdтакож виглядає $CDPATHі буде магічно працювати.


9

Ви можете використовувати autojump, який автоматично дізнається з попередньої команди cd, і вам потрібно лише вказати унікальний рядок з повного шляху наступного разу. колишній j foo, j foo1, j foo2


7

Ви можете створити ярлики для цих команд, додавши псевдоніми у файл конфігурації bash (~ / .bashrc або /etc/bash.bashrc)

alias cdd="cd ../../../../"

Потім, коли ви введете, cddвона виконає цю команду.


3
Так, або function cdd () { cd ../../../../$1/bar/dest ; }, тож ви можете просто ввести напр. cdd foo, cdd foo2.
Ендрю Шульман

0

Нещодавно я натрапив на https://github.com/rupa/z , що дозволяє перейти до нещодавно використовуваного каталогу шляхом regex. Отже, ви можете зробити щось на кшталт:

z foo3.*dest

замість:

cd ../../../../foo3/sub1/bar/dest/

(доки ви раніше відвідували цей каталог, і нічого більше останніх / часто використовуваних збігів, що повторюються)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.