j'ai essayé cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory
aussi cd ~/Library/Application Support/
-bash: cd: ~/Library/Application Support/: No such file or directory
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
etbind '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 à uncd foo bar
moyen de s'exécutercd
avec deux arguments:foo
etbar
. Si vous ne voulez envoyer qu'un seulfoo 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 votrecd ~/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:
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
~/
!):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):
Vous pouvez utiliser
shopt -s nocaseglob
pour rendre la casse insensible à la casse: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 maintenantcd ~/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/
la source
<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:
Le tilde n'est pas cité ici, donc l'expansion du tilde sera toujours exécutée.
Vous pouvez développer les variables d'environnement dans des chaînes entre guillemets; c'est essentiellement ce que l'expansion tilde fait
Vous pouvez également échapper des caractères spéciaux (tels que l'espace) avec une barre oblique inverse.
la source
Vous pouvez aussi simplement faire glisser un dossier dans la fenêtre du terminal, le chemin d'accès complet au fichier / dossier sera automatiquement collé par glisser.
la source
Vous devez échapper à l'espace "
Application Support
"Essayer
$ cd ~/Library/Application\ Support/
la source
Si les méthodes habituelles ne fonctionnent pas, essayez de remplacer les espaces par
%20
.Cela a fonctionné pour moi lorsqu'il s'agit de SSH et d'autres commandes de type domaine, telles que
auto_smb
.la source
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" /
la source