Estoy escribiendo un .sh para hacer un trabajo por mí, pero ahora estoy en el punto donde tengo que cd al directorio donde está el archivo /path/to/file.end. Terminal no permite
cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory
lamentablemente no conozco ninguna solución alternativa, por lo que sería bueno que pudieras ayudar.
command-line
bash
files
directory
Azsgy
fuente
fuente

cd /path/to? Eso cambiará el directorio al directorio en el que se encuentra el archivofile.end.Respuestas:
Tipo
cd $( dirname /path/to/file.end). Eso le llevará a/path/to.Explicación:
dirnamedevuelve la ruta completa de un archivo (sin el nombre de archivo, con el que obtendríabasename), es decir,dirname /etc/apt/apt.conf.d/99update-notifierdevuelve/etc/apt/apt.conf.d$(anything)se reemplaza por el resultado del comando entre paréntesis. Entoncescd $( dirname /etc/apt/apt.conf.d/99update-notifier)se ejecuta comocd /etc/apt/apt.conf.dOtra notación (pero antigua y desanimada) para el mismo era
fuente
No puedes
cdingresar a un archivo. Aquí está una (línea de comandos) la función que automáticamentecden una ruta para una ruta de archivo plenamente cualificado proporcionado:fuente
pwd, y si está definiendo una función en una línea, necesita un punto y coma despuéspwd.echo $?: ¿cuál es el estado de salida?Si agrega "/ .." al nombre de archivo que lo llevará al directorio correcto, por ejemplo
cd /path/to/file.end/... Funciona en Cygwin de todos modos.fuente
touch test && cd /home/test/test/..dicebash: cd: /home/test/test/..: No such file or directory