Hace poco estuve en una situación en la que estaba dentro de una carpeta y quería acceder cd
a una carpeta de subdirectorio. Solo había una carpeta, dentro de esta carpeta y era un nombre muy largo.
Home (I am here)
|
|
--> /reallylongnamefolder
¿Hay alguna forma de ingresar a esa carpeta en lugar de escribir:
cd reallylongnamefolder
command-line
Arian Faurtosh
fuente
fuente
cd */
ocd rea*/
si no está seguro, solo hay 1 subdirectorio en todo momento (si usa bash, también puedecd rea[TAB]
... en otros shells también, pero la forma de expandir el nombre puede variar). Si "/ reallylongnamefolder" es una ruta absoluta, lo mismo, pero con '/' al frente, por ejemplo:cd /rea*/
Respuestas:
Yo recomendaría escribir las primeras letras y presionar tab. Bash tiene una función de autocompletar que es realmente útil. Si solo está el directorio en la ruta actual, solo presionando tabse llenará todo el directorio.
Escribir
cd
y presionar tabdos veces mostrará todas las opciones en el directorio actual.tab generalmente es realmente útil en bash ya que tiene acceso a casi todos los ejecutables con una o dos pulsaciones de teclas.
cd *
como se sugirió anteriormente, solo funciona si el directorio está primero en la lista y no está oculto. Si hay un archivo alfabéticamente antes de su directorio, estocd
no cambiará su directorio en absoluto.fuente
cd <tab>
será lo suficientemente inteligente.Creo que en realidad lo descubrí
¡Pero no lo he probado si hay varios archivos y una carpeta!
Como @Rinzwind mencionó en los comentarios!
Digamos que tiene tres carpetas largas:
Si escribe la primera letra del archivo, ¡al presionarlo tabse completará automáticamente el nombre del archivo! ¡COSAS LOCAS!
Entonces, en el ejemplo anterior, puede escribir: t taby se completará automáticamente tanto como pueda:
cd thisislongfolder
(luego escriba el número usted mismo).O puedes hacer
cd t*1
te llevaría athisislongfolder1
¡Gracias Rinzwind!
fuente
cd r*r
y Espero que sea la única carpeta que comienza y termina con R.cd */
podría hacer el trucocd *
probablemente falla más de lo que tiene éxito.ls -d */
enumera los directorios,head -n 1
da el primero en esta lista.fuente
cd
en el primer directorio, no puede hacer pestañas.Tengo una buena configuración para esto, me permite no solo cd a ~ / somereallylongfoldername sino también cd allí incluso cuando estoy en la carpeta /
lo primero que uso es zsh con oh-my-zsh, esto también te permitirá cd sin tener que preocuparte por el caso o incluso sin escribir cd
abra y edite su .zshrc que se encuentra en su carpeta de inicio, no está oculto
nano ~ / .zshrc
luego agregue la siguiente línea al final del archivo
export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
Si te gusta mi tema también puedes cambiar la línea
#ZSH_THEME="robbyrussell"
aZSH_THEME="pygmalion"
Guarde y cierre el archivo y luego reinicie, es decir. cierre y vuelva a abrir el shell o simplemente abra una nueva pestaña y pruébelo
no puede usar la tecla de tabulación para completar nombres y en ZSH ni siquiera tiene que tener el caso correcto, puede escribir docu y presionar tab y se convertirá en ~ / Documentos
fuente
Puede cambiar el directorio por número de inodo.
primero encontramos el inodo con
ls -il
.luego
fuente
Si necesita hacerlo en un script o para admitir directorios con nombres no codificables:
Funciona si hay archivos en el directorio, independientemente de su orden de clasificación en relación con los directorios.
Funciona para directorios ocultos cuando
cd */
falla.Funciona si el nombre no es representable en la configuración regional actual cuando
ls
solo se imprime en??
lugar de un nombre.fuente
Extendiendo la respuesta de as:
para abrir la primera carpeta en un directorio. '1p' se puede cambiar a '2p' para el segundo directorio.
para enumerar solo directorios de un directorio padre.
fuente