Як я можу скасувати останню команду CD?


77

Чи є якийсь спосіб повернутися до попереднього робочого каталогу після того, як ви зробите cdінший каталог?

Моє використання полягає в тому, що я переходжу структуру каталогу для проекту Java, і я очікую, що в поточному каталозі є лише один підкаталог. Отже, я набираю cdі вдаряю Tabі Enterдосить швидко. Однак Tabне вдалося, як я помилково очікував одного підкаталога, коли насправді їх більше. Отже, я щойно виконував cdі зараз перебуваю у своєму домашньому каталозі замість проекту Java. Чи є спосіб "скасувати" це cdі повернутися до каталогу, в якому я був?

Відповіді:


130

Ви можете використовуватись cd -для повернення до попереднього місця, де б це не було.


10
Ну ... навіть через роки про Ubuntu я цього не знав. Дякую
andybleaden

19

cd - чудово підходить для повернення на один рівень, але якщо ви виявите, що хочете повернутися на кілька рівнів, перегляньте цей сценарій:

acd_func.sh

Це чудово. cd --щоб побачити свою історію та, наприклад, cd -3повернутися на 3 рівні.


Нічого ... посилання на геогради. Зараз є URL, якого я давно не бачив. <вставити Obi-wan JPG>
Майкл Батлер

1
суть цього коментаря. <jpg Yoda insert>
Donbhupi


5

Крім того, cd ..може прийняти вас назад в робочий каталог в батьківському каталозі , а потім в разі необхідності команда може повторюватися до тих пір , поки туди, де ви хочете бути. Насправді, кожного разу, коли це викликається, ви повертаєте вас назад через дерево каталогів, яке в кінцевому підсумку закінчиться на /(кореневий каталог), якщо ви просто повторювали команду.

На відміну від цього , cd -фактично робить попередній робочий каталог поточним робочим каталогом, (який відомий як .), і яке саме місце у файловій системі можна знайти pwd.

Таким чином і те, cd ..і інше cd - може бути корисним за різних обставин під час навігації по дереву каталогів, хоча вони і відрізняються у вищезгаданому аспекті. Мабуть, найкорисніша команда після веселого експерименту з цими двома командами - cdце повернення вас до домашньої папки.


-1

Найкращий спосіб зробити це для повернення назад cd -, однак, якщо ви хочете пропустити багато рівнів одночасно, вам краще скористатися cd ..для одного рівня cd ../.., для двох, cd ../../..для трьох і далі ... приємний спосіб зробити це швидко - це сценарій:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in `seq $TIMES`; do printf $BACKCHARS; done)
cd $BACK

1
Запуск cdсценарію не впливає на батьківську оболонку. Вам знадобиться поставити це у функції оболонки, щоб воно було корисним.
wjandrea

ось так:up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
wjandrea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.