2 votes

linux bash : cd dans un répertoire avec espace

Si j'ai un nom de répertoire comme "my dir". Je peux accéder au répertoire en utilisant ceci,

~: cd my\ dir

ou

~: cd "dy dir" 

Mais j'ai découvert que si je fais ça :

~: export my_dir=my\ dir

ou

~: export my_dir="my dir"

entonces

~: cd $my_dir

cela ne fonctionne pas, cd obtient toujours son paramètre comme "my" et rapporte une erreur.

Quelqu'un sait-il comment résoudre ce problème ?

Gracias.

10voto

GregD Points 8703

Le Shell scinde les variables sur les espaces lorsqu'il est utilisé en dehors des guillemets. Faites cd "$my_dir" à la place.

1voto

Muneeb Ali Points 111

Haciendo

cd "$my_dir"

fonctionne, mais vous devrez alors toujours vous rappeler que pour mon_dir, vous devrez utiliser "mon_dir". Une autre solution consiste à faire :

ln -s my\ dir my_dir
export my_dir="my_dir"

Et maintenant, vous devriez être en mesure de le faire :

cd $my_dir

Il s'agit donc de créer un lien symbolique vers le répertoire contenant l'espace, puis d'exporter le lien symbolique au lieu du répertoire réel.

0voto

markllama Points 41
alias cdmydir="cd my\ dir"

Vous ne pourrez pas l'utiliser pour d'autres fonctions, comme la spécification des chemins, mais cela fonctionnera pour cette utilisation immédiate.

J'ai essayé export my_dir=my\\\ dir y export my_dir="\"my dir\"" de sorte que la variable d'environnement soit my\ dir y "my dir" respectivement. Mais bash doit faire un parsing différent pour les variables d'environnement par rapport à la ligne de commande ordinaire : J'ai eu des erreurs "No such file or directory" pour my\ y "my .

0voto

tobylane Points 1329

C () { cd "$1 $2 $3 $4" ; }

Dans le fichier bash que vous pensez devoir être utilisé. La tabulation ajoute le / qui échappe à l'espace, tout comme le fait de le faire glisser depuis l'interface graphique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X