GNU/Linux >> Tutoriales Linux >  >> Linux

-bash:/bin/cd:No existe tal archivo o directorio - ejecuta automáticamente ls después de cd

Su sistema (como muchos sistemas Unix) no tiene un cd externo comando (al menos no en ese camino). Incluso si tuviera uno, el ls le daría la lista de directorios del directorio original. Un comando externo nunca puede cambiar el directorio para el proceso de llamada (su shell).

Elimina el alias del entorno con unalias cd (y también elimine su definición de cualquier archivo de inicialización de shell al que lo haya agregado).

Con una función de shell, puede hacer que funcione como cd normalmente lo hace, con una invocación extra de ls al final si el cd logrado:

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

o,

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

Esto llamaría al cd comando integrado en su shell con los mismos argumentos de línea de comando que le dio a la función. Si el cambio de directorio fue exitoso, el ls correría.

El command El comando evita que el shell ejecute la función de forma recursiva.

La definición de la función (como se escribió anteriormente) entraría en el archivo de inicio de su shell. Con bash , podría ser ~/.bashrc . La definición de la función estaría activa en la próxima nueva sesión de shell interactiva . Si quieres que esté activo ahora , luego ejecute la definición de la función tal como está en el indicador de shell interactivo, que la definirá dentro de su sesión interactiva actual.

En sistemas donde cd está disponible como un comando externo, este comando tampoco cambia el directorio para el proceso de llamada. El único uso real para dicho comando es proporcionar compatibilidad con POSIX y actuar como una prueba de si cambiar el directorio a uno en particular sería posible .


Pude resolverlo eliminando el alias nuevamente con unalias cd


Eso sucedió porque:

$ type cd

cd is a shell builtin

Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. Debian – -bash:/usr/bin/nano:¿No existe tal archivo o directorio?

  3. ¿Por qué /bin/sh apunta a /bin/dash y no a /bin/bash?

  4. Instalar binarios en /bin, /sbin, /usr/bin y /usr/sbin, interacciones con --prefix y DESTDIR

  5. Cambiar directorio y ejecutar archivo en un comando

/usr/bin/ls:/usr/bin/ls:¿No se puede ejecutar el archivo binario?

Linux – ¿Fusionar /usr/bin y /usr/sbin en /bin (gnu/linux)?

Kubuntu muestra un error al iniciar sesión (file:///usr/share/sddm//themes/breeze/main.qml:no such file or directory)?

cp:no se puede crear el directorio:no existe tal archivo o directorio

/dev/sdb:No existe tal archivo o directorio (pero /dev/sdb1, etc. existe)

sshpass no pudo ejecutar el comando:no existe tal archivo o directorio