Herhangi bir "cd .." kısayolu var mı?


30

Herhangi bir kısayol var mı cd ..?


47
Yazması çok mu uzun sürüyor?
sağdan

17
EVET, sık sık ihtiyaç duyulan bir şey için çok uzun sürüyor.
maaartinus

2
Push ve pop deneyin
Zachary Scott

19
Birisi yazmak için cd ..çok hantal bulduğu için çok eğleniyorum
Erik

8
' cd ..' İhtiyacı olan insanların sık sık cddosya sistemi yolları belirlemek yerine “orada bulunan dosyalar hakkında konuşmadan önce bir dizine girmeliyim” biçiminde olduğundan şüpheleniyorum .
bignose

Yanıtlar:


68

Varsayılan olarak değil (Bunun bazı istisnaları olabilir), yoktur. Ancak bu aliaskomutu kullanırsanız, şöyle bir kısayol oluşturabilirsiniz:

alias ..="cd .."

Bu ..yapmak için komutu kullanmanıza izin verecektir cd ...


10
Kahretsin, ben sadece yazarak edildi tam aynı şeyi.
Majenko

6
Ayrıca alias ...="cd ../.."iki tane daha kullanıyorum. Ek olarak önerebilirim alias ,=cd "$OLDPWD".
maaartinus

13
@maaartinus: cd -.
Benjamin Bannier

1
@honk Bilmiyordum. Ancak, çok uzun (ve çıktıya ihtiyacım yok).
maaartinus 19:11

1
Birisi lütfen aşağı oylamayı açıklayabilir mi?
Wuffers

82

autocdSeçeneği etkinleştirin . Siz yazarken sağlayacak ..için cd ..ve aslında bir komut adı ve irade olarak herhangi bir dizin kullanmak sağlayacak cdona:

shopt -s autocd

Meraklı için, aynı zsh için var:

setopt auto_cd

1
Bu harika. Tüm linux kutularımda .bashrc düzenleme zamanı. Maalesef, cygwin bash ile çalışmıyor gibi görünüyor.
hokkabaz

3
Woah, bu harika.
Reid

5
@ Gordoco: evet, sadece 4.x bash. Zsh'ı 14 yıldır kullanmamın nedeni bu.
sam hocevar

1
zsh(+ auto_cd) FTW!
Johnsyweb

2
@LaC: Teknik üstünlük her zaman egemenliğin belirleyicisi değildir. Bash çok daha yaşlı ve onu kullanarak çok daha fazla yazılmış ve pratikte tüm kabuk programcıları her şeyden çok biliyor. Değişim zor olabilir. - zsh gürültüsünün neyle ilgili olduğunu bilmeyen birinden, ve sadece gerçekten hiç bash kullandı :)
tshepang

42

Bunu faydalı buluyorum:

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

Örneğin, up 4=cd ../../../..

Bonus olarak, `up 4`/path/to/filebenzer şekilde çalışır ../../../../path/to/file.


İlginç! 2007'de .bashrc - dosyam için benzer bir [fonksiyon] ( home.arcor.de/hirnstrom/minis/index.html#up_X ) yazdım . Çözümünüz de tüm yolu geri atlamanızı sağlar cd -. Aferin! :)
kullanıcı bilinmeyen

Güzel. Bunun üzerinde çalışırken VMS DCL için böyle bir şeyim vardı, ancak Unix'e ve türevlerine geçtiğimde gerçekten düşünmedim.
GreenMatt

16

Yaptıktan sonra

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

cd ..tuşuna basarak yapabilirsiniz Alt-u. Bunu chdir şampiyonasında kullandım ;-)

Tüm hızlı-chdir paketini istiyorsanız

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

sadece bunu .bashrc'nize ekleyin

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
Chdir şampiyonası nedir? cahil
Peter Jaric

4
Rehber navigasyon spor olayı.
artistoex

14

Çok hızlı yazdığımdan ve boşluk çubuğunu özlediğim için bunu kullanıyorum:

alias cd..="cd .."

Unix olmayan bir kişi için zaman zaman rahatsız edici olan * nix box +1
mplungjan

11
s / non-unix/ Windows/
Grawity

3
Çok hızlı yazıyorsanız, karakterleri kaçırıyorsunuz, cd..gerçekten yardımcı olması için takma ad eklemeye inanmak zor .
Olli

3
Sevgili eski DOS'tan gelirseniz bunun nasıl yardımcı olacağını görebiliyorum cd.., geçerliydi :)
cambraca

1
Bazı nedenlerden dolayı cd yazdım .. geçen hafta için çok fazla. Kahveyi bırakmak zorunda kalacağımı sanıyordum ama bu çözümü daha iyi seviyorum.
Sözdizimi Hatası

7

Otomatik atlama deneyin: github üzerinde otomatik atlama

Bu sadece cd komutunu 'j' ye düşürmekle kalmayacak, aynı zamanda atlamak istediğiniz klasörü yazmak için gereken karakterleri de kısaltacaktır.

Her zaman / home / foo / Projects / thenextfacebook klasörüne cd yaparsanız, sadece 'j face' yapabilirsiniz ve işte oradasınız. Hangi klasörlerin sizin için en önemli olduğunu otomatik olarak öğrenir ve bir ay kullandıktan sonra artık çok doğru olduğunu söyleyebilirim.


2

Kullandığım alias …='cd ..'benim de .bashrcdosyaya. Unicode kuralları;)


1

Benim bashrc dosyamda

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

Hem de

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

1

Son derece gelişmiş bir cd komutu için Cd Deluxe'ü deneyin . Hızlıca yukarı doğru gezinmek için "cd ..." ve "cd ...." gibi şeyleri destekler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.