Qualche scorciatoia per "cd .."?


30

C'è qualche scorciatoia per cd ..?


47
Ci vuole così tanto tempo per scrivere?
destra del

17
SÌ, ci vuole troppo tempo per qualcosa di necessario così spesso.
maaartinus,

2
Prova push and pop
Zachary Scott

19
Sono terribilmente divertito dal fatto che qualcuno trovi cd ..troppo ingombrante da scrivere
Erik,

8
Sospetto che le persone che hanno bisogno di ' cd ..' così spesso abbiano l' cdanti-pattern “Devo entrare in una directory prima di parlare dei file lì”, piuttosto che specificare i percorsi del filesystem.
Bignose,

Risposte:


68

Non di default (potrebbero esserci delle eccezioni a questo), non lo è. Ma se usi il aliascomando puoi creare una scorciatoia come questa:

alias ..="cd .."

Questo ti permetterà di usare il comando ..per fare cd ...


10
Accidenti, stavo scrivendo l' esatto stessa cosa.
Majenko,

6
Ne sto usando anche alias ...="cd ../.."altri due. Inoltre, posso consigliare alias ,=cd "$OLDPWD".
maaartinus,

13
@maaartinus: cd -.
Benjamin Bannier,

1
@honk non lo sapevo. Tuttavia, è troppo lungo (e non ho bisogno dell'output).
maaartinus,

1
Qualcuno potrebbe spiegare il downvote?
Wuffers,

82

Attiva l' autocdopzione. Esso vi permette di digitare ..per cd ..e in effetti consentono di utilizzare qualsiasi directory come un nome di comando e la volontà cdad esso:

shopt -s autocd

Per i curiosi, lo stesso esiste per zsh:

setopt auto_cd

1
È fantastico. È ora di modificare .bashrc su tutte le mie scatole di Linux. Sfortunatamente non sembra funzionare con Cygwin Bash.
giocoliere

3
Woah, è fantastico.
Reid

5
@gordoco: sì, è solo bash 4.x. È il motivo per cui uso zsh da 14 anni.
Sam Hocevar,

1
zsh(+ auto_cd) FTW!
Johnsyweb,

2
@LaC: la superiorità tecnica non è sempre determinante per il dominio. Bash è molto più vecchio e ha molto più scritto usando, e praticamente tutti i programmatori di shell lo sanno, più di ogni altra cosa. Il cambiamento può essere difficile. - da qualcuno che non sa cosa sia tutto il rumore di zsh, e che abbia mai usato bash :)
tshepang

42

Lo trovo utile:

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

Ad esempio, up 4=cd ../../../..

Come bonus, `up 4`/path/to/filefunziona in modo simile a ../../../../path/to/file.


Interessante! Nel 2007 ho scritto una [funzione] simile ( home.arcor.de/hirnstrom/minis/index.html#up_X ) per il mio file .bashrc. La tua soluzione ti consente di tornare indietro con tutto cd -. Molto bene! :)
utente sconosciuto

Bello. Avevo qualcosa del genere per VMS DCL quando ci lavoravo, ma non ci pensavo davvero quando mi sono trasferito su Unix e le sue varianti.
GreenMatt,

16

Dopo aver fatto a

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

puoi cd ..premendo Alt-u. Lo usavo nei campionati di chdir ;-)

Se vuoi l'intera 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

includilo nel tuo .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
Cos'è un campionato chdir? ignorante
Peter Jaric,

4
Elenco eventi sportivi di navigazione.
artistoex,

14

Uso questo perché scrivo troppo velocemente e spesso mi manca la barra spaziatrice:

alias cd..="cd .."

Molto scomodo per una persona non unix occasionalmente su una * nix box +1
mplungjan

11
s / non-unix/ Windows/
grawity

3
Se stai scrivendo così velocemente che ti mancano i personaggi, è difficile credere che l'aggiunta di alias sia cd..davvero d'aiuto.
Olli

3
Posso vedere come potrebbe essere d'aiuto se vieni dal caro vecchio DOS, dove cd..era valido :)
Cambraca,

1
Per qualche ragione ho scritto cd ... molto per la scorsa settimana. Pensavo che avrei dovuto abbandonare il caffè, ma questa soluzione mi piace molto meglio.
Errore di sintassi

7

Prova autojump: autojump su github

Questo non solo accorcia il comando cd in 'j' ma accorcia anche i caratteri necessari per digitare la cartella in cui si vuole saltare.

Se fai sempre cd nella cartella / home / foo / Projects / thenextfacebook puoi semplicemente fare 'j face' ed eccoti qui. Impara automaticamente quali cartelle sono le più importanti per te e dopo averlo usato per un mese ora posso dire che è molto preciso.


2

Uso alias …='cd ..'nel mio .bashrcfile. Regole Unicode;)


1

Il mio file bashrc contiene

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

così come

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

1

Prova Cd Deluxe per un comando cd notevolmente migliorato. Supporta cose come "cd ..." e "cd ...." e così via per navigare rapidamente verso l'alto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.