Juego de caracteres POSIX
jeremy@ubuntu: /tmp$ ls /usr/sbin/[ABCDEFGHIJKLMNOPQRSTUVWXYZ] *
/usr/sbin/ ModemManager /usr/sbin/NetworkManager
Este comando solo produce el resultado ideal de nombres de archivos que comienzan con letras mayúsculas, pero:
jeremy@ubuntu:/tmp$ ls /usr/sbin/[A-Z]*
/usr/ sbin/bccmd /usr/sbin/pm-hibernate
/usr /sbin /biosdecode /usr/sbin/pm-powersave
/usr/sbin/bluetoothd /usr/sbin/pm-suspend
/usr/sbin/chat /usr/sbin /pm -suspend-hybrid
/usr/sbin/chgpasswd /usr/sbin/popcon-largest-unused
/usr/sbin/chpasswd / usr/sbin/popularity-contest p>
/usr/sbin/chroot /usr/sbin/pppconfig
/usr/sbin/cpgr /usr/sbin/pppd
/usr/sbin/ cppw / usr/ sbin/pppdump
/usr/sbin/cracklib-check /usr/sbin/pppoeconf
/usr/sbin/cracklib-format /usr/sbin/pppoe- descubrimiento
/usr /sbin/cracklib-packer /usr/sbin/pppstats
A través de este comando, podemos obtener una gran cantidad de resultados diferentes (una gran cantidad de resultados, solo resultados parciales). los resultados se muestran en la lista). ¿Por qué sucede esto?
Esto se remonta a los primeros días del desarrollo de Unix, cuando Unix sólo podía reconocer caracteres ASCII, y esta característica refleja ese hecho. En los caracteres ASCII, los primeros 32 caracteres (números del 0 al 31) son códigos de control (como tabulación, retroceso y retorno de carro). Los siguientes 32 caracteres (32 - 63) contienen caracteres imprimibles, incluida la mayoría de la puntuación y los dígitos del 0 al 9. Los siguientes 32 caracteres (64 - 95) contienen caracteres en mayúsculas y algo de puntuación. Los últimos 31 caracteres (96 - 127) contienen letras minúsculas y más puntuación.
De acuerdo con este arreglo, el sistema utiliza la siguiente recopilación ASCII:
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
Esto es diferente del orden diccionario normal, que es el siguiente:
uuvvwwxxyyzz
A medida que los sistemas Unix se hicieron más populares fuera de los Estados Unidos, surgió la necesidad de admitir caracteres en inglés no estadounidense. Caracteres que no se encuentran en inglés americano. Por lo tanto, la tabla de caracteres ASCII se amplió para utilizar todo el rango de 8 bits, agregando caracteres (número de bits 128 - 255) para admitir más idiomas. Para admitir esta funcionalidad, el estándar POSIX introduce un concepto llamado "localización", que le permite ajustar la localización para seleccionar el conjunto de caracteres requerido para una localización específica (es decir, la configuración de idioma del sistema). En esta configuración, las aplicaciones compatibles con POSIX utilizarán la clasificación por diccionario en lugar de la clasificación ASCII. Esto explica el comportamiento del comando anterior. Cuando el campo de caracteres [A-Z] se interpreta lexicográficamente, contiene todas las letras excepto la letra minúscula "a", lo que produce este resultado.