4.1.- Reglas de nomenclaturas de ficheros y expansión de comodines

folder_linux1Generalmente los nombres de ficheros de Linux son como los de cualquier otro sistema operativo. Sin embargo, cada uno de los sistemas operativos posee sus propias peculiaridades en la nomenclatura, diferencias que puede causar algún problema para los que se mueven entre sistemas operativos o que desean pasar ficheros de un sistema a otro.

Los nombres de ficheros de Linux pueden contener letras mayúsculas o minúsculas, números e, incluso, la mayoría de caracteres de control y puntuación. Sin embargo, para para hacernos la vida más fácil, se recomienda evitar los caracteres que no sean alfanuméricos, el punto (.), el guión (-) y el subrayado (_). tuxterminal_iconAlgunos programas crean ficheros de copia de seguridad añadiendo al final la virgulilla (~). Aunque los nombres de ficheros en Linux puede contener espacios, y a pesar de que son habituales en algunos sistemas operativos, los espacios se se deben indicar mediante caracteres de escape en la línea de comandos de Linux, anteponiendo una barra invertida (\) al espacio o rodeando todo el nombre de fichero con comillas (“nombre de fichero“). Con este requisito hace que resulte un poco incómodo utilizar los espacios en Linux, por lo que se suele sustituir por guiones o subrayados.

Hay unos caracteres que no se deberían usar nunca en un nombre de fichero por su significado especial. Entre éstos se incluyen el asterisco (*), el signo de interrogación (?), la barra (/), la barra invertida (\) y las comillas ("). Pero, podemos utilizar estos caracteres (excepto la barra que hace de elemento separador de directorios), anteponiéndole caracteres de escape, posiblemente esto nos cree alguna confusión mayor que el resto de símbolos.

En cuanto a la longitud de los nombres de ficheros en Linux depende del sistema de ficheros que se utilice. En ext2fs, ext3fs, ReiserFS, XFS y muchos otros, su límite está en 255 caracteres. En DOS el nombre de caracteres está restringido a ocho caracteres, seguido de una extensión de tres caracteres (conocido familiarmente como 8.3 entre usuarios habituales de DOS), estos dos grupos de componentes están separados por un punto.

En Linux son comunes las extensiones de uno a cuatro caracteres  y sus nombres de fichero pueden contener un número arbitrario de puntos. De hecho, estos pueden comenzar por un punto (llamados dot files, ficheros con punto) , estos dot files permanecen ocultos en la mayoría de las utilidades que muestran ficheros, por lo que se suelen utilizar para almacenar los ficheros de configuración del directorio home.

 nota_tema_4_1Tenemos que dos nombres de fichero particularmente especiales. El primero consistente en un punto (.) que se refiere al directorio actual, mientras que un nombre consistente en un punto doble (..) hace referencia al directorio padre. Por ejemplo, si su directorio actual es /home/atika, entonces . hace referencia a dicho directorio y .. hace referencia a home.

Apreciaremos una diferencia entre los nombres de ficheros de Linux y los nombres de los otros muchos sistemas operativos y es que Linux distingue entre mayúsculas y minúsculas en sus nombres de ficheros; es decir que miarchivo.doc es diferente a miArchivo.doc o MIARCHIVO.DOC. Estos tres ficheros pueden compartir el mismo directorio.

ejemplo_4_miarchivo

Dentro de Windows, estos tres nombres hacen referencia al mismo fichero. Aunque Windows 95 como sus sucesores conservaban las mayúsculas y las minúsculas del fichero, ignoran éstas linux-windowssi hacen referencia a un fichero existente, por lo que no admiten ficheros cuyos nombres difieran sólo en este aspecto dentro del mismo directorio. Esta diferencia no supone un gran problema para la mayoría de la gente que migra de Windows a Linux, pero debemos tener conciencia de ello. También puede provocar problemas si intenta leer un disco FAT utilizando el driver vfat de Linux, ya que Linux debe seguir las reglas de Windows cuando administra ficheros en dicho disco.

Podemos utilizar los comodines con la mayoría de comandos. Un comodín es un símbolo o conjunto de símbolos que representan a otros caracteres. Tenemos tres clases de comodines habituales en Linux:

  • ? .- Este símbolo representa a un solo carácter. Por ejemplo, ficha? coincide con ficha1 y ficha2.Administrar_ficheros_1
  • * .- El asterisco (*) coincide con cualquier carácter o conjunto de caracteres, incluyendo la ausencia de caracteres. Por ejemplo, libre*, coincidirá con libreta.doc y libreto.doc.Administrar_Archivo_2
  • [valores…] .- Los caracteres rodeados entre corchetes ([]) suelen coincidir con cualquier carácter del conjunto. Por ejemplo, ficha[0-9] coincide con ficha1 y ficha2.Administrador_ficheros_3

Los comodines están implementados en la consola y se les pasa al comando al que se llame como vemos en los ejemplos de arriba en este caso se lo hemos pasado al comando ls. El proceso de expansión de comodines se conoce como file globbing o, simplemente, globbing.

El modo en el que se expanden los comodines nos puede acarrear consecuencias no deseadas. Por ejemplo, supongamos que queremos copiar dos ficheros, especificados mediante un comodín, a otro directorio, pero se olvida de indicar el directorio de destino. El comando cp (que veremos más adelante) interpretará el comando como una petición de copia del primero de los ficheros sobre el segundo.

Anuncios