![¿Linux distingue entre mayúsculas y minúsculas y no distingue entre mayúsculas y minúsculas y siempre es inconveniente?](https://rvso.com/image/1316780/%C2%BFLinux%20distingue%20entre%20may%C3%BAsculas%20y%20min%C3%BAsculas%20y%20no%20distingue%20entre%20may%C3%BAsculas%20y%20min%C3%BAsculas%20y%20siempre%20es%20inconveniente%3F.png)
Estoy usando Ubuntu 10 y rápidamente descubro que distingue entre mayúsculas y minúsculas cuando es inconveniente que sea así (como cuando se completan automáticamente las rutas de archivos con tabulador en la terminal) pero también distingue entre mayúsculas y minúsculas cuando se usan los comandos MV y CP (también inconveniente al intentar duplicar un nombre de archivo con un caso diferente).
En esencia, necesito que este comando funcione pero no funciona.
cp ./filename.txt ./FileName.txt
Simplemente termino con filename.txt
:
¿Cómo puedo obtener el mismo archivo con un caso diferente pero el mismo nombre en el mismo directorio?
EDITAR: El comentario de Maerics a continuación me ayudó a recordar que en realidad estoy desarrollando en una unidad compartida de Windows que ejecuta NTFS, que no distingue entre mayúsculas y minúsculas. Es por esto que aunque CP y MV no generan un error, el archivo no se copia (o más probablemente SE copia, pero Windows reemplaza el ya existente).
Respuesta1
NTFS 1 y VFAT no distinguen entre mayúsculas y minúsculas, solo las conservan. Eso significa que si crea un archivo llamado FileName.txt
, el sistema de archivos conservará el nombre de mayúsculas y minúsculas, pero podrá acceder al archivo con cualquier combinación de mayúsculas y minúsculas de las mismas letras, FILENAME.TXT
como filename.txt
o fileNAME.txt
. Esto explica que no puede tener dos archivos con la misma ortografía con solo una variación de mayúsculas/minúsculas en el mismo directorio.
El sistema de archivos exportado SMB debe implementar este comportamiento para no confundir a los clientes de Windows.
ZFS se puede configurar para que se comporte de esa manera con la casesensitivity=mixed
propiedad.
1 Técnicamente, NTFS distingue entre mayúsculas y minúsculas, pero los sistemas operativos que montan sistemas de archivos de este tipo casi siempre están configurados para ocultar esta característica subyacente y solo conservar las mayúsculas y minúsculas. Sin embargo, Windows puede habilitar la distinción entre mayúsculas y minúsculas modificando esta clave de registro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitive
y Linux puede montar estos sistemas de archivos con varios comportamientos dependiendo de las opciones ignore_case
de windows_names
montaje.
Respuesta2
Puede habilitar la finalización de nombres de archivos sin distinguir entre mayúsculas y minúsculas en bash agregando la siguiente línea a $HOME/.inputrc
:
set completion-ignore-case On
Respecto a los nombres de los archivos: esto depende del sistema de archivos. En los sistemas de archivos Linux, no debería haber ningún problema. En otros sistemas de archivos, el comportamiento se puede controlar con opciones del comando de montaje. Consulte la página del manual mount(8)
para obtener más información sobre las opciones disponibles para montar.
Respuesta3
¿Es esto una propiedad del sistema de archivos o algo más?
pa-ubuntu-11388$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.3 LTS
Release: 10.04
Codename: lucid
pa-ubuntu-11388$ ls -l
pa-ubuntu-11388$ touch filename.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt
pa-ubuntu-11388$ cp ./filename.txt ./FileName.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 FileName.txt
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt
Funciona bien para mí.
Respuesta4
Ubuntu no distingue parcialmente entre mayúsculas y minúsculas. Siempre distingue entre mayúsculas y minúsculas. filename.txt
y Filename.txt
son dos archivos diferentes y se pueden colocar en el mismo directorio. Entonces este comando:
cp ./filename.txt ./FileName.txt
funcionará sin ningún problema en el mismo directorio.