Якийсь ярлик для "cd .."?


30

Чи є якийсь ярлик cd ..?


47
Чи потрібно так довго вводити текст?
праворуч

17
ТАК, це займе занадто багато часу, щоб щось, що потрібно так часто.
maaartinus

2
Спробуйте push and pop
Zachary Scott

19
Мене страшенно cd ..цікаво, що хтось вважає занадто громіздким набрати
Ерік

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

Відповіді:


68

За замовчуванням (з цього можуть бути деякі винятки), немає. Але якщо ви використовуєте aliasкоманду, ви можете створити такий ярлик:

alias ..="cd .."

Це дозволить вам використовувати команду ..to do cd ...


10
Чорт, я просто набрав саме те саме.
Маєнко

6
Я також використовую alias ...="cd ../.."і ще два. Додатково можу порекомендувати alias ,=cd "$OLDPWD".
maaartinus

13
@maaartinus : cd -.
Бенджамін Баньє

1
@honk я цього не знав. Однак це занадто довго (і вихід мені не потрібен).
maaartinus

1
Може хтось, будь-ласка, пояснить голосування?
Wuffers

82

Активуйте autocdопцію. Це дозволить вам друкувати ..на cd ..і фактично дозволяє використовувати будь-який каталог в якості імені команди і волі cdдо нього:

shopt -s autocd

Для допитливих те саме існує для zsh:

setopt auto_cd

1
Це фантастично. Час редагувати .bashrc на всіх моїх скриньках linux. На жаль, це, здається, не працює з cygwin bash.
жонглер

3
Вау, це приголомшливо.
Рейд

5
@gordoco: так, це лише удар 4.x. Це причина, чому я використовую zsh вже 14 років.
sam hocevar

1
zsh(+ auto_cd) FTW!
Johnsyweb

2
@LaC: Технічна перевага не завжди є визначальним фактором домінування. Bash набагато старший і його набагато більше написано, і практично всі програмісти оболонок знають це більше, ніж усе інше. Зміни можуть бути важкими. - від того, хто не знає, про що йдеться у всіх
шумах

42

Я вважаю це корисним:

up() { local p= i=${1:-1}; while (( i-- )); do p+=../; done; cd "$p$2" && pwd; }

Наприклад, up 4=cd ../../../..

Як бонус, `up 4`/path/to/fileпрацює аналогічно ../../../../path/to/file.


Це цікаво! У 2007 році я написав аналогічну [функцію] ( home.arcor.de/hirnstrom/minis/index.html#up_X ) для свого .bashrc - файлу. Ваше рішення дозволяє також відскочити цілий шлях назад cd -. Молодці! :)
користувач невідомий

Приємно. У мене було щось подібне для VMS DCL, коли я працював над цим, але не дуже думав над цим, коли перейшов до Unix та його варіантів.
GreenMatt

16

Після виконання а

bind '"\eu":"cd ..\C-m"'

можна cd .., натиснувши Alt-u. Раніше я використовував це на чемпіонаті з chdir ;-)

Якщо ви хочете, щоб цілий свит-chdir

ALT+u cd ..
ALT+n enter next dir for selection
ALT+p enter previous dir for selection
ALT+SPC choose selected dir
ALT+l list subdirectories and highlight selection

просто включіть це у свій .bashrc

swiftcd-status() {
    echo -n -e "\r\0033[1A\0033[J"
}

swiftcd-contents() {
    find "$swiftcdpath" -maxdepth 1 -executable -type d
}

swiftcd-setdir () 
{ 
    swiftcdpath=$PWD
    swiftcddirnum=1
    swiftcddircount=`swiftcd-contents|wc -l`;
    swiftcd-status
}

swiftcd-pd () 
{ 
    (( --swiftcddirnum <= 0 )) && swiftcddirnum=$swiftcddircount;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-updir () 
{ 
    cd ..;
    swiftcd-setdir
}

swiftcd-list () 
{ 
    local redOn="$(echo -e '\0033[31m\0033[1m')"
    local redOff="$(echo -e '\0033[m')"

    swiftcd-status
    ((  swiftcddircount > 1 )) && { 
        echo
        echo $(swiftcd-contents|sed 's!^'"$swiftcdpath"'!!'|sed $swiftcddirnum' s/\(.*\)/'"$redOn"'\1'"$redOff"'/')
    } 
}

swiftcd-nd () 
{ 
    (( ++swiftcddirnum > swiftcddircount )) && swiftcddirnum=1;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-switch() {
    (( $1 <= swiftcddircount && $1 > 0 )) && cd $(swiftcd-contents|sed -n $1' p')
}

bind '"\e ":"swiftcd-setdir\C-m"'
bind '"\ep":"swiftcd-pd\C-m"'
bind '"\eu":"swiftcd-updir\C-m"'
bind '"\en":"swiftcd-nd\C-m"'
bind '"\el":"swiftcd-list\C-m"'
swiftcd-setdir

4
Що таке чемпіонат з чдиру? невіглас
Петро Ярич

4
Каталог спортивних змагань з навігації.
artistoex

14

Я використовую цей, оскільки надруковую текст і часто пропускаю пробіл:

alias cd..="cd .."

Найзручніше для людини, яка не є Unix, періодично на коробці * nix +1
mplungjan

11
s / non-unix/ Windows/
grawity

3
Якщо ви набираєте так швидко, що вам не вистачає символів, важко повірити, що додавання псевдоніма cd..справді допомагає.
Оллі

3
Я бачу, як це могло б допомогти, якщо ви родом із дорогого старого DOS, де cd..було дійсно :)
cambraca

1
Я чомусь набрав компакт-диск .. за останній тиждень. Я думав, що мені доведеться кинути каву, але мені це подобається краще.
Помилка синтаксису

7

Спробуйте autojump: autojump on github

Це не тільки скоротить команду CD на 'j', але і скоротить символи, необхідні для введення папки, в яку ви хочете перейти.

Якщо ви завжди входите в папку / home / foo / Projects / thenextfacebook, ви можете просто зробити "j face" і там ви є. Він автоматично дізнається, які папки є найважливішими для вас, і після використання ним протягом місяця я можу сказати, що це дуже точно.



1

Мій файл bashrc містить

alias ..="cd .. && ls -lG"

так добре як

alias ,,="pushd .. && ls -lG"

1

Спробуйте Cd Deluxe для значно вдосконаленої CD-команди. Він підтримує такі речі, як "cd ..." та "cd ...." тощо, щоб швидко переміщатися вгору.

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