Jakikolwiek skrót do „cd ..”?

30

Czy jest jakiś skrót cd ..?

użytkownik35538
źródło
47
Czy pisanie trwa tak długo?
prawej
17
TAK, na coś tak często potrzebnego.
maaartinus
2
Spróbuj pop i pop
Zachary Scott,
19
Jestem bardzo rozbawiony, że ktoś uważa, że ​​jest cd ..zbyt nieporęczny, aby pisać
Erik
8
Podejrzewam, że ludzie, którzy tego potrzebują cd .., często mają cdanty-wzorzec „muszę wejść do katalogu, zanim zacznę mówić o plikach”, zamiast określać ścieżki systemu plików.
bignose

Odpowiedzi:

68

Nie domyślnie (mogą istnieć pewne wyjątki), nie ma. Ale jeśli użyjesz aliaspolecenia, możesz utworzyć taki skrót:

alias ..="cd .."

Umożliwi to użycie polecenia ..do zrobienia cd ...

Wuffers
źródło
10
Cholera, właśnie pisałem dokładnie to samo.
Majenko,
6
Używam też alias ...="cd ../.."i jeszcze dwóch. Dodatkowo mogę polecić alias ,=cd "$OLDPWD".
maaartinus,
13
@maaartinus: cd -.
Benjamin Bannier
1
@honk Nie wiedziałem o tym. Jest jednak za długi (i nie potrzebuję danych wyjściowych).
maaartinus
1
Czy ktoś mógłby wyjaśnić opinię?
Wuffers
82

Aktywuj autocdopcję. Pozwoli Ci wpisać ..do cd ..i faktycznie pozwala użyć dowolnego katalogu jako nazwa polecenia i woli cddo niego:

shopt -s autocd

Dla ciekawskich to samo dotyczy zsh:

setopt auto_cd
sam hocevar
źródło
1
To jest fantastyczne. Czas edytować .bashrc na wszystkich moich polach linuksowych. Niestety nie działa z cygwin bash.
żongler
3
Woah, to niesamowite.
Reid
5
@gordoco: tak, to tylko bash 4.x. To jest powód, dla którego używam Zsh od 14 lat.
sam hocevar
1
zsh(+ auto_cd) FTW!
Johnsyweb
2
@LaC: Przewaga techniczna nie zawsze jest determinantą dominacji. Bash jest o wiele starszy i korzysta z niego o wiele więcej i praktycznie wszyscy programiści powłoki wiedzą to bardziej niż cokolwiek innego. Zmiana może być trudna. - od kogoś, kto nie wie, o co chodzi w całym hałasie zsh, i naprawdę naprawdę tylko używał bash :)
tshepang
42

Uważam to za przydatne:

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

Na przykład up 4=cd ../../../..

Jako bonus `up 4`/path/to/filedziała w podobny sposób ../../../../path/to/file.

grawitacja
źródło
To interesujące! W 2007 roku napisałem podobną [funkcję] ( home.arcor.de/hirnstrom/minis/index.html#up_X ) dla mojego pliku .bashrc. Twoje rozwiązanie pozwala również cofnąć się do końca cd -. Dobra robota! :)
użytkownik nieznany
Miły. Miałem coś takiego dla VMS DCL, kiedy nad tym pracowałem, ale tak naprawdę nie myślałem o tym, kiedy przeniosłem się do Unixa i jego wariantów.
GreenMatt
16

Po wykonaniu

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

możesz cd .., naciskając Alt-u. Użyłem tego na mistrzostwach chdir ;-)

Jeśli chcesz cały pakiet 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

po prostu dołącz to do swojego .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
źródło
4
Co to jest mistrzostwo chdir? ignorant
Peter Jaric
4
Wydarzenie sportowe nawigacji katalogu.
artistoex,
14

Używam tego, ponieważ piszę zbyt szybko i często brakuje mi spacji:

alias cd..="cd .."
żongler
źródło
Najbardziej niewygodny dla osoby spoza Unix okazjonalnie na * nix box +1
mplungjan
11
s / non-unix/ Windows/
grawity
3
Jeśli piszesz tak szybko, że brakuje ci znaków, trudno uwierzyć, że dodanie aliasu cd..naprawdę pomaga.
Olli,
3
Widzę, jak to może pomóc, jeśli pochodzą z drogiego starego DOS, gdzie cd..była ważna :)
cambraca
1
Z jakiegoś powodu przez ostatni tydzień dużo pisałem na cd. Myślałem, że muszę rzucić kawę, ale to rozwiązanie bardziej mi się podoba.
Błąd składni
7

Wypróbuj autojump: autojump na github

Spowoduje to nie tylko skrócenie polecenia cd do „j”, ale także skrócenie znaków potrzebnych do wpisania folderu, do którego chcesz przejść.

Jeśli zawsze przechodzisz do folderu / home / foo / Projects / thenextfacebook, możesz po prostu zrobić „j face” i gotowe. Automatycznie uczy się, które foldery są dla Ciebie najważniejsze, a po miesiącu użytkowania mogę powiedzieć, że jest bardzo dokładne.

mbrochh
źródło
2

Używam alias …='cd ..'w swoim .bashrcpliku. Reguły Unicode;)

knittl
źródło
1

Mój plik bashrc zawiera

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

jak również

alias ,,="pushd .. && ls -lG"
Wrashi
źródło
1

Wypróbuj Cd Deluxe, aby uzyskać znacznie ulepszone polecenie cd. Obsługuje takie rzeczy jak „cd ...” i „cd ....” i tak dalej, aby szybko nawigować w górę.

FuzzyWuzzy
źródło