GNU/Linux >> Tutoriels Linux >  >> Linux

-bash:/bin/cd :aucun fichier ou répertoire de ce type - exécute automatiquement ls après cd

Votre système (comme de nombreux systèmes Unix) n'a pas de cd externe commande (du moins pas sur ce chemin). Même s'il en avait un, le ls vous donnerait la liste des répertoires du répertoire d'origine. Une commande externe ne peut jamais changer de répertoire pour le processus appelant (votre shell).

Supprimez l'alias de l'environnement avec unalias cd (et supprimez également sa définition de tous les fichiers d'initialisation du shell auxquels vous l'avez peut-être ajouté).

Avec une fonction shell, vous pouvez la faire fonctionner comme cd fait habituellement, avec une invocation supplémentaire de ls à la fin si le cd réussi :

cd () {
    command cd "[email protected]" && ls -lah
}

ou,

cd () { command cd "[email protected]" && ls -lah; }

Cela appellerait le cd commande intégrée à votre shell avec les mêmes arguments de ligne de commande que vous avez donnés à la fonction. Si le changement de répertoire a réussi, le ls courrait.

Le command La commande empêche le shell d'exécuter la fonction de manière récursive.

La définition de la fonction (telle qu'écrite ci-dessus) ira dans le fichier de démarrage de votre shell. Avec bash , cela pourrait être ~/.bashrc . La définition de la fonction serait alors active dans la prochaine nouvelle session interactive du shell . Si vous voulez qu'il soit actif maintenant , puis exécutez la définition de la fonction telle quelle à l'invite du shell interactif, qui la définira dans votre session interactive en cours.

Sur les systèmes où cd est disponible en tant que commande externe, cette commande ne change pas non plus de répertoire pour le processus appelant. La seule utilisation réelle d'une telle commande est de fournir la conformité POSIX et d'agir comme un test pour savoir si le changement de répertoire vers un particulier serait possible .


J'ai pu le résoudre en supprimant à nouveau l'alias avec unalias cd


Cela s'est produit parce que :

$ type cd

cd is a shell builtin

Linux
  1. /usr/bin Vs /usr/local/bin Sous Linux ?

  2. /usr/bin/ls :/usr/bin/ls :impossible d'exécuter le fichier binaire ?

  3. Debian – -bash :/usr/bin/nano :aucun fichier ou répertoire de ce type ?

  4. Kubuntu affiche une erreur lors de la connexion (file:///usr/share/sddm//themes/breeze/main.qml:no Such File Or Directory) ?

  5. Erreur avec gradlew :/usr/bin/env :bash :aucun fichier ou répertoire de ce type

Changer de répertoire et exécuter le fichier en une seule commande

-bash :/usr/bin/virtualenvwrapper.sh :aucun fichier ou répertoire de ce type

unix:///var/run/supervisor.sock aucun fichier de ce type

/dev/sdb :aucun fichier ou répertoire de ce type (mais /dev/sdb1, etc. existe)

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

chroot échoue - impossible d'exécuter la commande `/bin/bash' :aucun fichier ou répertoire de ce type