Réponses:
Vous pouvez utiliser la Tabtouche après avoir appuyé sur les premiers caractères (ceci "remplira" ensuite le reste du dossier pour vous, par exemple tapez cd ~/L
Tabremplit cd ~/Library/
puis tapez Ap
Tabet remplira le reste pour vous.
S'il y a un espace entre les mots et que vous ne voulez pas utiliser les méthodes ci-dessus, mettez une \
barre oblique inverse avant l'espace, par exemple cd ~/Library/Application\ Support
.
shopt -s nocaseglob
et bind 'set completion-ignore-case on'
rendre bash moins sensible aux cas.
La question centrale ici est de savoir comment le shell ( bash ) cite et comment cela affecte le développement du tilde et la scission en «mots» (arguments du programme en cours d'exécution).
bash ne traite le tilde qui précède que s'il n'est pas cité. De plus, la barre oblique suivante ne doit pas non plus être citée.
Dans le même temps, bash analyse les lignes de commande en «mots» basés sur des espaces non cités. La cd
commande nécessite généralement un seul argument (le répertoire de destination). Une ligne de commande similaire à un cd foo bar
moyen de s'exécuter cd
avec deux arguments: foo
et bar
. Si vous ne voulez envoyer qu'un seul foo bar
argument, vous devez citer l'espace:
(par exemple) cd foo\ bar
(voir plus d'exemples de citations ci-dessous).
Dans votre situation particulière, vous devez laisser le tilde et la barre oblique suivante sans guillemets tout en citant l'espace dans le nom du répertoire. Votre cd "~/Library/Application Support/"
essai finit par citer trop (le tilde et sa barre oblique), tandis que votre cd ~/Library/Application Support/
essai cite trop peu (il omet de citer l'espace dans le nom du répertoire).
La solution la plus courante consiste à utiliser l'échappement à un seul caractère pour ne citer que l'espace:
cd ~/Library/Application\ Support
Vous pouvez également utiliser des guillemets simples ou doubles entre les espaces ou l'espace et quelques autres bits de cet argument (mais pas le ~/
!):
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
Ces types de citations ont des significations différentes, mais elles sont identiques dans ces exemples. Les guillemets simples protègent les chaînes littérales tandis que les guillemets doubles permettent diverses extensions et substitutions dans la région citée.
Souvent, vous pouvez simplement laisser la coque faire le travail à votre place.
Globbing (caractères génériques):
cd ~/L*/Ap*
Vous pouvez utiliser shopt -s nocaseglob
pour rendre la casse insensible à la casse:
cd ~/l*/ap*
Achèvement:
En appuyant sur Tabaprès avoir entré cd ~/L
sera probablement élargir à cd ~/Library/
.
Si vous appuyez à Tabnouveau après avoir entré Ap
(vous avez maintenant cd ~/Library/Ap
), cela sera probablement étendu à cd ~/Library/Application\ Support/
(le shell a automatiquement inséré la barre oblique inversée qui s’échappe).
Vous pouvez utiliser bind 'set completion-ignore-case on'
pour rendre la complétion insensible à la casse:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
<kbd></kbd>
balise HTML (une des balises HTML prises en charge dans SE Markdown ).
Lorsque vous double-citez un chemin, vous arrêtez le développement du tilde. Donc, il y a plusieurs façons de le faire:
cd ~/"My Code"
cd ~/'My Code'
Le tilde n'est pas cité ici, donc l'expansion du tilde sera toujours exécutée.
cd "$HOME/My Code"
Vous pouvez développer les variables d'environnement dans des chaînes entre guillemets; c'est essentiellement ce que l'expansion tilde fait
cd ~/My\ Code
Vous pouvez également échapper des caractères spéciaux (tels que l'espace) avec une barre oblique inverse.
Si le nom du fichier ou du dossier contient 1) nom de fichier.extension, la commande doit être cd ~ / fichier \ nom.extension / (ou) cd ~ / "nom de fichier.extension" /