Risposte:
Puoi usare il Tabtasto dopo aver premuto i primi pochi caratteri (questo "riempirà" il resto della cartella per te, ad esempio digita cd ~/L
Tabriempie cd ~/Library/
quindi digita Ap
Tabe riempirà il resto per te.
Se c'è uno spazio tra le parole e non vuoi usare i metodi sopra, metti una \
barra rovesciata prima dello spazio, ad es cd ~/Library/Application\ Support
.
shopt -s nocaseglob
e bind 'set completion-ignore-case on'
per rendere bash meno sensibile al caso.
Il problema principale qui è come la shell ( bash ) fa il preventivo e come questo influenza l'espansione della tilde e la suddivisione in "parole" (argomenti per il programma in esecuzione).
bash tratta la tilde principale solo se non viene quotata. Inoltre, anche la seguente barra non deve essere quotata.
Allo stesso tempo, bash analizza le righe di comando in "parole" basate su spazi bianchi non quotati. Il cd
comando richiede in genere esattamente un argomento (la directory di destinazione). Una riga di comando come cd foo bar
significa eseguire cd
con due argomenti: foo
e bar
. Se desideri solo inviare un singolo foo bar
argomento, devi citare lo spazio:
(ad es.) cd foo\ bar
(Vedi più esempi di citazioni di seguito).
Nella tua situazione particolare, è necessario lasciare la tilde e la seguente barra non quotate mentre si cita lo spazio nel nome della directory. La tua cd "~/Library/Application Support/"
prova finisce per citare troppo (la tilde e la sua barra), mentre la tua cd ~/Library/Application Support/
prova cita troppo poco (omette di citare lo spazio nel nome della directory).
La soluzione più comune è usare l'escaping a carattere singolo per citare solo lo spazio:
cd ~/Library/Application\ Support
Puoi anche usare virgolette singole o doppie attorno solo allo spazio o allo spazio e ad alcuni altri bit di quell'argomento (ma non il ~/
!):
cd ~/Library/Application' 'Support
cd ~/Library/Application" "Support
cd ~/Library/App'lication 'Support
cd ~/Library/Application" Supp"ort
cd ~/'Library/Application 'Support
cd ~/"Library/Application "Support
Questi tipi di virgolette hanno significati diversi, ma sono identici in questi esempi. Le virgolette singole proteggono stringhe letterali mentre le virgolette doppie consentono varie espansioni e sostituzioni nella regione quotata.
Spesso, puoi semplicemente lasciare che la shell faccia il lavoro per te.
Globbing (caratteri jolly):
cd ~/L*/Ap*
È possibile utilizzare shopt -s nocaseglob
per rendere insensibile il caso globbing:
cd ~/l*/ap*
Completamento:
Premendo Tabdopo aver immesso cd ~/L
probabilmente lo espanderà a cd ~/Library/
.
Premendo di Tabnuovo dopo aver inserito Ap
(ora hai cd ~/Library/Ap
) probabilmente lo espanderai a cd ~/Library/Application\ Support/
(la shell ha inserito automaticamente la barra rovesciata di escape).
È possibile utilizzare bind 'set completion-ignore-case on'
per rendere insensibile al maiuscolo / minuscolo:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
<kbd></kbd>
tag HTML (uno dei numerosi tag HTML supportati nel markdown SE ).
Quando citate due volte un percorso, interrompete l'espansione della tilde. Quindi ci sono alcuni modi per farlo:
cd ~/"My Code"
cd ~/'My Code'
La tilde non è quotata qui, quindi l'espansione della tilde verrà comunque eseguita.
cd "$HOME/My Code"
È possibile espandere le variabili di ambiente all'interno di stringhe tra virgolette doppie; questo è fondamentalmente ciò che sta facendo l'espansione della tilde
cd ~/My\ Code
Puoi anche sfuggire a personaggi speciali (come lo spazio) con una barra rovesciata.
Puoi provare questo per cartelle / file distanziati da Se il nome del file o della cartella contiene 1) nome file.estensione Il comando deve essere cd ~ / file \ nome.eestensione / (o) cd ~ / "nome file.estensione" /