A veces, mientras accedo a los distintos directorios, sucede la mayoría de las veces que recuerdo los nombres o al menos parte de los nombres de un directorio en nuestro sistema Linux. Pero algunos de los directorios se nombran comenzando con las mayúsculas del primer carácter o uno de los caracteres en el medio del nombre Mayúscula.
¿Alguien puede sugerir cómo puedo hacer que los argumentos que siguen al cdcaso del comando sean INSENSIBLES, de modo que si lo ejecuto cd BackupDirectoryo cd backupdirectorypodría ingresar el nombre del directorio BackupDirectory?
Por supuesto, no quiero arruinar las cosas para otros usuarios, así que si lo anterior es posible, ¿es posible que el cambio se pueda aplicar solo a la sesión que estoy usando y no afecte a otros usuarios?
Ok, lo probé set completion-ignore-casepero esto simplemente no funciona. Sólo ayuda en que si escribo cd by Tab, o Esc Escse llena el nombre del directorio ignorando el caso. Pero, lo que necesito es que si hago un cd backupdirectory, simplemente ignora el caso y entra BackupDirectorypor sí solo.
fuente

backUPybackUp, ¿cómobackupno a qué directorio desea ir?mco cambiar a una GUI? Hace la vida mucho más fácil.Respuestas:
La habilitación
cdspellayudará a:De la
manpágina:fuente
Golpetazo
set completion-ignore-case onen~/.inputrc(obind 'set completion-ignore-case on'en~/.bashrc) sería mi recomendación. Si va a escribir el nombre completo, ¿por qué rechazar unas pocas pulsaciones de la Shifttecla?Pero si realmente lo quiere, aquí hay una envoltura
cdque intenta una coincidencia exacta, y si no hay ninguna, busca una coincidencia entre mayúsculas y minúsculas y la realiza si es única. Utiliza lanocaseglobopción de shell para el globbing que no distingue entre mayúsculas y minúsculas, y convierte el argumento en un glob al agregarlo@()(que no coincide con nada y requiereextglob). Laextglobopción tiene que estar activada cuando se define la función, de lo contrario bash ni siquiera puede analizarla. Esta función no es compatibleCDPATH.Ksh
Mientras estoy en eso, aquí hay una función similar para ksh93. La
~(i)modificación para la coincidencia que no distingue entre mayúsculas y minúsculas parece ser incompatible con el/sufijo para hacer coincidir solo los directorios (esto puede ser un error en mi versión de ksh). Entonces uso una estrategia diferente, para eliminar los no directorios.Zsh
Finalmente, aquí hay una versión zsh. Nuevamente, permitir la finalización sin distinción entre mayúsculas y minúsculas es probablemente la mejor opción. La siguiente configuración vuelve a ser insensible a mayúsculas y minúsculas si no hay coincidencia exacta de mayúsculas y minúsculas:
Eliminar
''para mostrar todas las coincidencias entre mayúsculas y minúsculas, incluso si hay una coincidencia exacta entre mayúsculas y minúsculas. Puede configurar esto desde la interfaz del menú decompinstall.fuente
inputrcpara que funcione. Así:echo "set completion-ignore-case on" >> ~/.inputrccd:cd:17: no such file or directory: videos(Tengo un directorio llamadoVideos)emulate -L zshaemulate -LR zsh? (Por cierto que acaba de arreglar un error, que debería haber sidoemulate -L zsh, noemulate zsh, de lo contrario sería estropear sus opciones de shell.)