Adakah pintasan untuk "cd .."?


30

Apakah ada jalan pintas untuk cd ..?


47
Apakah perlu waktu lama untuk mengetik?
kanan dibuka

17
YA, memang butuh waktu terlalu lama untuk sesuatu yang sering dibutuhkan.
maaartinus

2
Coba push dan pop
Zachary Scott

19
Saya sangat senang bahwa seseorang menemukan cd ..terlalu rumit untuk mengetik
Erik

8
Saya mencurigai orang-orang yang membutuhkan ' cd ..' begitu sering memiliki "Saya harus cdke direktori sebelum berbicara tentang file di sana" anti-pola, daripada menentukan jalur sistem file.
bignose

Jawaban:


68

Tidak secara default (Mungkin ada beberapa pengecualian untuk ini), tidak ada. Tetapi jika Anda menggunakan aliasperintah, Anda dapat membuat pintasan seperti ini:

alias ..="cd .."

Ini akan memungkinkan Anda untuk menggunakan perintah ..untuk melakukan cd ...


10
Sial, saya hanya mengetik hal yang sama persis .
Majenko

6
Saya juga menggunakan alias ...="cd ../.."dan dua lagi. Selain itu, saya dapat merekomendasikan alias ,=cd "$OLDPWD".
maaartinus

13
@maaartinus: cd -.
Benjamin Bannier

1
@ yah, saya tidak tahu. Namun, ini terlalu lama (dan saya tidak perlu hasilnya).
maaartinus

1
Bisakah seseorang tolong jelaskan downvote?
Wuffers

82

Aktifkan autocdopsi. Ini akan membiarkan Anda mengetik ..untuk cd ..dan benar-benar akan membiarkan Anda menggunakan direktori apapun sebagai nama perintah dan kemauan cduntuk itu:

shopt -s autocd

Bagi yang penasaran, ada yang sama untuk zsh:

setopt auto_cd

1
Itu fantastis. Saatnya mengedit .bashrc di semua kotak linux saya. Sayangnya sepertinya tidak bekerja dengan cygwin bash.
juggler

3
Woah, itu luar biasa.
Reid

5
@ gordoco: yeah, ini hanya bash 4.x. Itulah alasan saya menggunakan zsh selama 14 tahun.
sam hocevar

1
zsh(+ auto_cd) FTW!
Johnsyweb

2
@ LaC: Keunggulan teknis tidak selalu merupakan penentu dominasi. Bash jauh lebih tua dan jauh lebih tertulis menggunakannya, dan praktis semua programmer shell mengetahuinya, lebih dari apa pun. Perubahan bisa sulit. - dari seseorang yang tidak tahu semua tentang zsh noise, dan hanya pernah menggunakan bash :)
tshepang

42

Saya menemukan ini berguna:

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

Sebagai contoh, up 4=cd ../../../..

Sebagai bonus, `up 4`/path/to/filebekerja dengan cara yang mirip dengan ../../../../path/to/file.


Itu menarik! Pada tahun 2007 saya menulis [fungsi] yang serupa ( home.arcor.de/hirnstrom/minis/index.html#up_X ) untuk file .bashrc saya. Solusi Anda memungkinkan untuk melompat mundur sepanjang jalan dengan cd -juga. Sudah selesai dilakukan dengan baik! :)
pengguna tidak dikenal

Bagus. Saya memiliki sesuatu seperti ini untuk VMS DCL ketika saya mengerjakannya, tetapi tidak benar-benar memikirkannya ketika saya pindah ke Unix dan variannya.
GreenMatt

16

Setelah melakukan a

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

Anda bisa cd ..dengan menekan Alt-u. Saya menggunakan ini pada kejuaraan chdir ;-)

Jika Anda ingin seluruh suite 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

cukup sertakan ini dalam .bashrc Anda

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
Apa itu kejuaraan chdir? bodoh
Peter Jaric

4
Direktori acara olahraga navigasi.
artistoex

14

Saya menggunakan yang ini karena saya mengetik terlalu cepat dan sering ketinggalan bilah spasi:

alias cd..="cd .."

Paling tidak nyaman untuk orang yang bukan unix kadang-kadang di kotak * nix +1
mplungjan

11
s / non-unix/ Windows/
grawity

3
Jika Anda mengetik begitu cepat hingga Anda kehilangan karakter, sulit untuk percaya bahwa menambahkan alias cd..sangat membantu.
Olli

3
Saya bisa melihat bagaimana ini bisa membantu jika Anda berasal dari DOS tua tersayang, di mana cd..valid :)
cambraca

1
Untuk beberapa alasan saya telah mengetik cd .. banyak selama seminggu terakhir. Saya pikir saya harus berhenti minum kopi tetapi saya lebih suka solusi ini.
Sintaks Kesalahan

7

Coba autojump: autojump di github

Ini tidak hanya akan mempersingkat perintah cd menjadi 'j' tetapi juga mempersingkat karakter yang diperlukan untuk mengetik folder yang ingin Anda lompati.

Jika Anda selalu cd ke folder / home / foo / Projects / thenextfacebook Anda bisa melakukan 'j face' dan itu dia. Itu belajar secara otomatis folder mana yang paling penting untuk Anda dan setelah menggunakannya selama sebulan sekarang saya dapat mengatakan bahwa itu sangat akurat.


2

Saya menggunakan alias …='cd ..'dalam .bashrcfile saya . Aturan Unicode;)


1

File bashrc saya berisi

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

sebaik

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

1

Coba Cd Deluxe untuk perintah cd yang sangat ditingkatkan. Ini mendukung hal-hal seperti "cd ..." dan "cd ...." dan seterusnya untuk menavigasi ke atas dengan cepat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.