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.