¿Cómo ingresas en la primera carpeta disponible sin escribir el nombre?


30

Hace poco estuve en una situación en la que estaba dentro de una carpeta y quería acceder cda 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

1
de muchas maneras: cd */o cd rea*/si no está seguro, solo hay 1 subdirectorio en todo momento (si usa bash, también puede cd 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*/
Olivier Dulac

Respuestas:


38

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 cdy 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, esto cdno cambiará su directorio en absoluto.


15
Ni siquiera debería necesitar escribir letras, si solo hay un directorio presente: cd <tab>será lo suficientemente inteligente.
amalloy

1
Funciona en Windows también. (para personas que vienen de google ..)
Koray Tugay

16

Creo que en realidad lo descubrí

cd * 
cd */

¡Pero no lo he probado si hay varios archivos y una carpeta!


Como @Rinzwind mencionó en los comentarios!

Digamos que tiene tres carpetas largas:

 /thisislongfolder1
 /thisislongfolder2
 /thisislongfolder3

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*1te llevaría athisislongfolder1

¡Gracias Rinzwind!


66
cd first_letter_or_some_letters y luego {tab} es el más fácil (también resuelve su problema de muchas carpetas. Incluso puede mezclar letras con más de 1 tab y letras. El sistema se completará automáticamente en la medida de lo posible. También puede hacer cd r*ry Espero que sea la única carpeta que comienza y termina con R.
Rinzwind

@Rinzwind wow! Yo no lo sabia! ¡Gracias!
Arian Faurtosh

Pruébalo. Agregue sus resultados a su respuesta y probablemente obtendrá cierta reputación por ello ;-)
Rinzwind

44
cd */podría hacer el truco
gniourf_gniourf

3
cd *probablemente falla más de lo que tiene éxito.
David Richerby

14
cd $(ls -d */|head -n 1)

ls -d */enumera los directorios, head -n 1da el primero en esta lista.


Sí, y vas a escribir eso ... Prefiero ir a tab-tab y buscar el nombre que escribir esto. Sin embargo, es 100% correcto, ¡buena respuesta!
tomsmeding

1
@tomsmeding Si está escribiendo un script que necesita cden el primer directorio, no puede hacer pestañas.
user12205

-n 1 muestra el último 1 archivo del archivo. Si desea usar esto para un orden variable, puede usar: cd $ (ls -d -1 * / | sed -n '4p') para abrir la cuarta carpeta en un directorio. Agregarlo al alias puede hacerlo más rápido con la navegación de carpetas.
Ivan Ivković

2

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

  1. instalar git y zsh
sudo apt-get install zsh git
  1. instalar Oh My ZSH

curl -L http://install.ohmyz.sh | sh

  1. Cambie el shell predeterminado a ZSH
chsh -s /bin/zsh

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

ingrese la descripción de la imagen aquí


0

Puede cambiar el directorio por número de inodo.
primero encontramos el inodo con ls -il.
luego

cd $(find -inum directory_inode_number)

0

Si necesita hacerlo en un script o para admitir directorios con nombres no codificables:

cd $(python -c $'import os\nfor entry in os.listdir(b"."):\n if os.path.isdir(entry):\n  os.write(1, entry);break\nelse: os.write(1, b".")')

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 lssolo se imprime en ??lugar de un nombre.


0

Extendiendo la respuesta de as:

cd $(ls -d -1 */ |sed -n '1p')

para abrir la primera carpeta en un directorio. '1p' se puede cambiar a '2p' para el segundo directorio.

ls -d -1 -la */

para enumerar solo directorios de un directorio padre.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.