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

30

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

user35538
источник
47
Это займет так много времени, чтобы напечатать?
правильном направлении
17
ДА, это часто занимает слишком много времени для чего-то необходимого.
Maaartinus
2
Попробуйте пуш и поп
Захари Скотт
19
Я ужасно удивлен, что кто-то находит cd ..слишком громоздким, чтобы печатать
Эрик
8
Я подозреваю, что люди, которым это нужно, cd ..так часто имеют cdанти-паттерн «Я должен в каталог, прежде чем говорить о файлах там», вместо того, чтобы указывать пути файловой системы.
bignose

Ответы:

68

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

alias ..="cd .."

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

Wuffers
источник
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.

grawity
источник
Это интересно! В 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
artistoex
источник
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», и вот вы здесь. Он автоматически узнает, какие папки являются наиболее важными для вас, и после использования его в течение месяца я могу сказать, что он очень точный.

mbrochh
источник
2

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

knittl
источник
1

Мой файл bashrc содержит

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

так же как

alias ,,="pushd .. && ls -lG"
Wrashi
источник
1

Попробуйте Cd Deluxe для значительно улучшенной команды CD. Он поддерживает такие вещи, как «cd ...» и «cd ....» и т. Д., Чтобы быстро перемещаться вверх.

FuzzyWuzzy
источник