Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La sensibilidad a las mayúsculas determina si las letras mayúsculas (FOO.txt) y minúsculas (foo.txt) se manejan como distintas (sensibles a las mayúsculas) o equivalentes (insensibles a las mayúsculas) en un nombre de archivo o directorio.
- Distingue mayúsculas de minúsculas: FOO.txt ≠ foo.txt ≠ Foo.txt
- No distingue mayúsculas de minúsculas: FOO.txt = foo.txt = Foo.txt
Diferencias entre la sensibilidad a mayúsculas y minúsculas de Windows y Linux
Al trabajar con directorios y archivos de Linux y Windows, es posible que tenga que ajustar cómo se controla la distinción de mayúsculas y minúsculas.
Comportamiento estándar:
- El sistema de archivos de Windows trata los nombres de archivo y directorio como insensibles a mayúsculas y minúsculas. FOO.txt y foo.txt se tratarán como archivos equivalentes.
- El sistema de archivos de Linux trata los nombres de archivos y directorios como diferencia entre mayúsculas y minúsculas. FOO.txt y foo.txt se tratarán como archivos distintos.
El sistema de archivos de Windows admite la configuración de distinción entre mayúsculas y minúsculas con marcas de atributo por directorio. Aunque el comportamiento estándar no distingue mayúsculas de minúsculas, puede asignar una marca de atributo para que un directorio distinga mayúsculas de minúsculas, de manera que reconozca los archivos y carpetas de Linux que pueden diferir únicamente en mayúsculas y minúsculas.
Esto puede ser especialmente cierto al montar unidades en el Subsistema de Windows para Linux (WSL) y su sistema de archivos. Al trabajar en el sistema de archivos WSL, se ejecuta Linux, por lo que los archivos y directorios son sensibles a mayúsculas y minúsculas de forma predeterminada.
Nota:
En el pasado, si tenías archivos cuyo nombre difería solo en mayúsculas/minúsculas, no se podía acceder a estos archivos en Windows, ya que las aplicaciones de Windows tratan el sistema de archivos como insensible a las mayúsculas y no pueden distinguir entre archivos cuyos nombres difieren solo en su uso. Aunque el Explorador de archivos de Windows mostrará ambos archivos, solo se abrirá uno independientemente del que seleccione.
Cambiar la distinción entre mayúsculas y minúsculas de archivos y directorios
En los pasos siguientes se explica cómo cambiar un directorio en el sistema de archivos de Windows para que sea sensible a mayúsculas y minúsculas y para que reconozca archivos y carpetas que solo difieren por mayúsculas y minúsculas.
Advertencia
Algunas aplicaciones de Windows, bajo la suposición de que el sistema de archivos no distingue mayúsculas de minúsculas, no utilizan el formato correcto para hacer referencia a los archivos. Por ejemplo, no es raro que las aplicaciones transformen nombres de archivo para usar mayúsculas o minúsculas. En los directorios marcados como sensibles a mayúsculas y minúsculas, estas aplicaciones ya no pueden acceder a los archivos. Además, si las aplicaciones de Windows crean nuevos directorios en un árbol de directorios donde se usan archivos que distinguen mayúsculas de minúsculas, estos directorios no distinguen mayúsculas de minúsculas. Esto puede dificultar el trabajo con herramientas de Windows en directorios que distinguen mayúsculas de minúsculas, por lo que debe tener precaución al cambiar la configuración de distinción de mayúsculas y minúsculas del sistema de archivos de Windows.
Inspeccione la sensibilidad de mayúsculas y minúsculas actual
Para comprobar si un directorio distingue mayúsculas de minúsculas en el sistema de archivos de Windows, ejecute el comando :
fsutil.exe file queryCaseSensitiveInfo <path>
Sustituya <path>
por su ruta de acceso de archivo. Para un directorio en el sistema de archivos de Windows (NTFS), el <path>
se verá así: C:\Users\user1\case-test
o si ya está en el directorio user1
, solo ejecute: fsutil.exe file setCaseSensitiveInfo case-test
Modificar la sensibilidad a mayúsculas y minúsculas
La compatibilidad con la distinción entre mayúsculas y minúsculas por directorio comenzó en Windows 10, compilación 17107. En Windows 10, compilación 17692, se actualizó la compatibilidad para incluir la inspección y modificación de la bandera de sensibilidad a mayúsculas y minúsculas de un directorio dentro de WSL. La distinción entre mayúsculas y minúsculas se expone mediante un atributo extendido denominado system.wsl_case_sensitive
. El valor de este atributo será 0 para directorios que no distinguen mayúsculas de minúsculas y 1 para directorios que distinguen mayúsculas de minúsculas.
Para cambiar la distinción entre mayúsculas y minúsculas de un directorio, es necesario ejecutar permisos elevados (ejecutar como administrador). El cambio de la marca de distinción de mayúsculas y minúsculas también requiere permisos de "Escribir atributos", "Crear archivos", "Crear carpetas" y "Eliminar subcarpetas y archivos" en el directorio. Consulte la sección de solución de problemas para obtener más información sobre esto.
Para cambiar un directorio en el sistema de archivos de Windows para que distingue mayúsculas de minúsculas (FOO ≠ foo), ejecute PowerShell como administrador y use el comando :
fsutil.exe file setCaseSensitiveInfo <path> enable
Para volver a cambiar un directorio del sistema de archivos de Windows al valor predeterminado que no distingue mayúsculas de minúsculas (FOO = foo), ejecute PowerShell como administrador y use el comando :
fsutil.exe file setCaseSensitiveInfo <path> disable
Un directorio debe estar vacío para cambiar el atributo de sensibilidad a mayúsculas y minúsculas en ese directorio. No se puede deshabilitar la marca de sensibilidad a mayúsculas y minúsculas en un directorio que contenga carpetas o archivos cuyos nombres solo se distinguen por el uso de mayúsculas y minúsculas.
Herencia de sensibilidad a mayúsculas y minúsculas
Al crear nuevos directorios, esos directorios heredarán la distinción entre mayúsculas y minúsculas de su directorio primario.
Advertencia
Hay una excepción a esta directiva de herencia cuando se ejecuta en modo WSL 1. Cuando una distribución se ejecuta en modo WSL 1, no se hereda la sensibilidad a mayúsculas y minúsculas por directorio; los directorios creados en un directorio con distinción entre mayúsculas y minúsculas no son automáticamente sensibles a las mayúsculas y minúsculas. Debe marcar explícitamente cada directorio como sensible a mayúsculas y minúsculas.
Opciones de sensibilidad de mayúsculas para montar una unidad en el archivo de configuración de WSL
La distinción entre mayúsculas y minúsculas se puede gestionar al montar un disco en el Subsistema de Windows para Linux (WSL) mediante el archivo de configuración de WSL. Cada distribución de Linux que haya instalado puede tener su propio archivo de configuración de WSL, denominado /etc/wsl.conf
. Para obtener más información sobre cómo montar una unidad, consulte Introducción al montaje de un disco Linux en WSL 2.
Para configurar la opción de sensibilidad a mayúsculas y minúsculas en el archivo wsl.conf
al montar una unidad:
- Abra la distribución de Linux que va a usar (es decir, Ubuntu).
- Cambiar directorios hasta que vea la carpeta
etc
(esto puede requerir subir desde el directoriocd ..
). - Enumere los archivos del
etc
directorio para ver si ya existe unwsl.conf
archivo (use ells
comando oexplorer.exe .
para ver el directorio con el Explorador de archivos de Windows). - Si el
wsl.conf
archivo aún no existe, puede crearlo mediante:sudo touch wsl.conf
o ejecutandosudo nano /etc/wsl.conf
, que creará el archivo al guardarlo desde el editor Nano. - Las siguientes opciones están disponibles para agregar al
wsl.conf
archivo:
Configuración predeterminada: dir
para habilitar la distinción entre mayúsculas y minúsculas por directorio.
[automount]
options = case = dir
Distinción entre mayúsculas y minúsculas no disponible (todos los directorios de unidades NTFS montadas no distinguen mayúsculas de minúsculas): off
[automount]
options = case = off
Trate todos los directorios de la unidad (NTFS) como sensibles a mayúsculas y minúsculas: force
[automount]
options = case = force
Esta opción solo se admite para montar unidades en distribuciones de Linux que se ejecutan como WSL 1 y puede requerir una clave de registro. Para agregar una clave de registro, puede usar este comando desde un símbolo del sistema con privilegios elevados (administrador): reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1
.
Tendrá que reiniciar WSL después de realizar cualquier cambio en el wsl.conf
archivo para que esos cambios surtan efecto. Puede reiniciar WSL mediante el comando : wsl --shutdown
Sugerencia
Para montar una unidad (que usa el complemento del sistema de archivos DrvFs para que el disco esté disponible en /mnt, como /mnt/c, /mnt/d, etc.) con una configuración de distinción de mayúsculas y minúsculas específica para todas las unidades, use /etc/wsl.conf
como se ha descrito anteriormente. Para establecer las opciones de montaje predeterminadas para una unidad específica, use el /etc/fstab
archivo para especificar estas opciones.
Para obtener más opciones de configuración de WSL, consulte Configurar las opciones de inicio por distribución con wslconf.
Cambio de la sensibilidad a mayúsculas y minúsculas en una unidad de disco montada en una distribución de WSL
Las unidades con formato NTFS montadas en una distribución de WSL no distinguen mayúsculas de minúsculas de forma predeterminada. Para cambiar la distinción entre mayúsculas y minúsculas de un directorio de una unidad montada en una distribución WSL (es decir, Ubuntu), siga los mismos pasos que se enumeran anteriormente para el sistema de archivos de Windows. (Las unidades EXT4 distinguen mayúsculas de minúsculas de forma predeterminada).
Para habilitar la distinción de mayúsculas y minúsculas en un directorio (FOO ≠ foo), use el comando :
fsutil.exe file setCaseSensitiveInfo <path> enable
Para deshabilitar la distinción entre mayúsculas y minúsculas en un directorio y volver al valor predeterminado sin distinción entre mayúsculas y minúsculas (FOO = foo), use el comando :
fsutil.exe file setCaseSensitiveInfo <path> disable
Nota:
Si cambia la marca que distingue mayúsculas de minúsculas en un directorio existente para una unidad montada mientras WSL se está ejecutando, asegúrese de que WSL no tenga referencias a ese directorio o, de lo contrario, el cambio no será efectivo. Esto significa que el directorio no debe estar abierto por ningún proceso de WSL, incluido el uso del directorio (o sus descendientes) como directorio de trabajo actual.
Configura la sensibilidad de mayúsculas y minúsculas con Git
El sistema de control de versiones de Git también tiene una configuración que se puede usar para ajustar la distinción de mayúsculas y minúsculas de los archivos con los que está trabajando. Si usa Git, es posible que desee ajustar la git config core.ignorecase
configuración.
Para configurar Git para que sea sensible a mayúsculas y minúsculas (FOO.txt ≠ foo.txt), escriba:
git config core.ignorecase false
Para configurar Git de modo que no distinga entre mayúsculas y minúsculas (FOO.txt = foo.txt), escriba:
git config core.ignorecase true
Establecer esta opción en false en un sistema de archivos que no distingue mayúsculas de minúsculas puede provocar errores confusos, conflictos falsos o archivos duplicados.
Para obtener más información, consulte la documentación de Configuración de Git.
Solución de problemas
Mi directorio tiene archivos con mezcla de mayúsculas y minúsculas que requieren sensibilidad a las mayúsculas y minúsculas, pero las herramientas del sistema de archivos de Windows no pueden reconocer estos archivos.
Para usar las herramientas del sistema de archivos de Windows para trabajar en un directorio de Linux que contiene archivos de mayúsculas y minúsculas mixtas, deberá crear un nuevo directorio y establecerlo para que distinga entre mayúsculas y minúsculas, y a continuación, copiar los archivos en ese directorio (mediante git clone o untar). Los archivos permanecerán en mayúsculas y minúsculas mixtas. (Tenga en cuenta que si ya ha intentado mover los archivos a un directorio que no distingue mayúsculas de minúsculas y que hubo conflictos, es probable que haya algunos archivos sobrescritos y que ya no estén disponibles).
Error: El directorio no está vacío
No se puede cambiar la configuración de distinción entre mayúsculas y minúsculas en un directorio que contenga otros archivos o directorios. Intente crear un nuevo directorio, cambiar la configuración y, a continuación, copiar sus archivos con mezcla de mayúsculas y minúsculas en él.
Error: Acceso denegado
Asegúrese de tener los permisos "Escribir atributos", "Crear archivos", "Crear carpetas" y "Eliminar subcarpetas y archivos" necesarios en el directorio para cambiar la distinción entre mayúsculas y minúsculas. Para comprobar esta configuración, abra el directorio en el Explorador de archivos de Windows (desde la línea de comandos, use el comando : explorer.exe .
). Haga clic con el botón derecho en el directorio y seleccione Propiedades para abrir la ventana Propiedades del documento y, a continuación, seleccione Editar para ver o cambiar los permisos del directorio.
Error: se requiere un volumen NTFS local para esta operación
El atributo de sensibilidad a mayúsculas y minúsculas solo se puede establecer en directorios dentro de un sistema de archivos con formato NTFS. Los directorios del sistema de archivos WSL (Linux) distinguen mayúsculas de minúsculas de forma predeterminada (y no se pueden establecer para que no distinguen mayúsculas de minúsculas mediante la herramienta fsutil.exe).
Recursos adicionales
Windows Subsystem for Linux