Любой ярлык для «CD ..»?


30

Есть ли ярлык для cd ..?


47
Это займет так много времени, чтобы напечатать?
— правильном направлении

17
ДА, это часто занимает слишком много времени для чего-то необходимого.
— Maaartinus

2
Попробуйте пуш и поп
— Захари Скотт

19
Я ужасно удивлен, что кто-то находит cd ..слишком громоздким, чтобы печатать
— Эрик

8
Я подозреваю, что люди, которым это нужно, cd ..так часто имеют cdанти-паттерн «Я должен в каталог, прежде чем говорить о файлах там», вместо того, чтобы указывать пути файловой системы.
— bignose

Ответы:


68

Не по умолчанию (там могут быть некоторые исключения), нет. Но если вы используете aliasкоманду, вы можете создать ярлык следующим образом:

alias ..="cd .."

Это позволит вам использовать команду ..для выполнения cd ...


10
Черт, я просто набрав точно то же самое.
— Majenko

6
Я использую также alias ...="cd ../.."и еще два. Дополнительно могу порекомендовать alias ,=cd "$OLDPWD".
— Maaartinus

13
@maaartinus: cd -.
— Бенджамин Банье

1
@ Хонк, я этого не знал. Тем не менее, это слишком долго (и мне не нужен вывод).
— Maaartinus

1
Может кто-нибудь объяснить, пожалуйста, понижение голосов?
— Вуфферс

82

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

shopt -s autocd

Для любопытных то же самое существует для zsh:

setopt auto_cd

1
Это фантастика. Время редактировать .bashrc на всех моих коробках linux. К сожалению, он не работает с Cygwin Bash.
— жонглер

3
Вау, это круто.
— Рейд

5
@gordoco: да, это только bash 4.x. Это причина, почему я использую Zsh в течение 14 лет.
— Сам Хочевар

1
zsh(+ auto_cd) FTW!
— Johnsyweb

2
@LaC: техническое превосходство не всегда является определяющим фактором доминирования. Bash намного старше и написал намного больше, используя его, и практически все программисты оболочки знают это больше, чем что-либо еще. Изменить может быть сложно. - от кого-то, кто не знает, что такое шум
— Zsh

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 ;-)

Если вы хотите весь набор swift-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 box +1
— mplungjan

11
s / non-unix/ Windows/
— grawity

3
Если вы печатаете так быстро, что пропускаете символы, трудно поверить, что добавление псевдонима cd..действительно помогает.
— Олли

3
Я вижу, как это могло бы помочь, если вы пришли из дорогой старой DOS, где cd..был действителен :)
— cambraca

1
По какой-то причине я набираю cd .. много за последнюю неделю. Я думал, что мне придется бросить кофе, но мне это решение нравится больше.
— Синтаксическая ошибка

7

Попробуйте autojump: autojump на github

Это не только сократит команду cd до 'j', но также сократит символы, необходимые для ввода папки, в которую вы хотите перейти.

Если вы всегда заходите в папку / home / foo / Projects / thenefacefacebook, вы можете просто сделать «j face», и вот вы здесь. Он автоматически узнает, какие папки являются наиболее важными для вас, и после использования его в течение месяца я могу сказать, что он очень точный.


2

Я использую alias …='cd ..'в моем .bashrcфайле. Юникод правила;)


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.