Trabajando con Archivos en Unix/Linux

Bien, ahora que ya tenemos un shell de Unix (versión Linux) empezamos con un frío prompt más o menos así:
[usuario@maquina usuario]$
Estarás pensando "¿y ahora qué?".
En este artículo encontrarás lo necesario para poder comenzar a usar la línea de comandos del shell efectivamente.

Primero, hablemos acerca del shell. El shell es un programa que toma los comandos que tecleas y se los pasa al sistema operativo para que los ejecute. Hay varios tipos de shells disponibles, cada uno de ellos se comporta en forma diferente. Por omisión, el shell que se usa en Linux es Bash, mismo que utilizaremos para los ejemplos aquí presentados. Si quieres saber qué shell estás usando, teclea lo siguiente en la línea de comandos:

echo $SHELL

Si ves algo como "/bin/bash", entonces sabrás que estás usando el shell bash.

Entre los otros shells que hay, están: pdksh, tcsh y zsh. Para la mayoría de los usuarios, bash es una excelente opción; una de ellas es la historia de comandos, con la cual, utilizando la tecla flecha arriba podrás recuperar los comandos tecleados con anterioridad para no tener que teclearlos de nuevo. Bash también tiene lo que se llama "completar con TAB", lo cual significa que si tecleas parte de una ruta o nombre de archivo, bash tratará de completarlo por ti si presionas la tecla TAB. Si hay varias opciones de completado, oprimiendo TAB una segunda vez ocasionará que sean listadas todas ellas.

Otra característica ahorradora de tiempo de bash es su habilidad para usar "comodines" cuando se teclean nombres de archivo. Los comodines son unos caracteres especiales con un significado especial para el shell. Veamos algunos ejemplos asumiendo que tenemos los siguientes archivos en nuestro directorio:

ventas.txt
ventas1.txt
ventas2.txt
ventas33.txt
La interrogación ("?") representa cualquier caracter individual.

[usuario@maquina usuario]$ ls ventas?.txt
ventas1.txt ventas2.txt

Nótese que el listado no incluyó el archivo ventas33.txt porque la interrogación representa únicamente a un solo caracter.

El asterisco ("*") representa cualquier cantidad de caracteres, incluyendo cero caracteres.

[usuario@maquina usuario]$ ls ventas*.txt
ventas.txt ventas1.txt ventas2.txt ventas33.txt
Un par de corchetes ("[ ]") pueden contener lo que es conocido como una "clase de caracteres". ¿Qué significa esto?. Bien, el shell usará únicamente los caracteres dentro de los corchetes cuando esté buscando archivos.
[usuario@maquina usuario]$ ls ventas[12].txt
ventas1.txt ventas2.txt
Este comando no incluiría un archivo llamado "ventas12.txt" porque únicamente incluye archivos que comiencen con "ventas", seguido por un "1" o un "2" y que termine con ".txt".

Es posible mezclar estos caracteres para formar comandos muy poderosos, haciendo la tarea de trabajar con archivos mucho más fácil.

[usuario@maquina usuario]$ ls ventas[13]*.txt
ventas1.txt ventas33.txt
Un momento, ¿qué hay acerca de ese comando "ls" que hemos estado utilizando en los ejemplos?. Bueno, ese es el comando que sirve para listar archivos y puede aceptar una gran variedad de argumentos (u opciones), los cuales se teclean después del nombre del comando. Normalmentecomienzan con uno o dos guiones, por ejemplo, aquí tenemos algunos de los argumentos más usuales del comando "ls":
  • "-a" Muestra archivos ocultos. Los archivos ocultos comienzan con un punto.
  • "-l" Formato largo. Muestra los tamaños y permisos de los archivos.
  • "-F" Ayuda a identificar los tipos de archivo desplegando una diagonal ("/") después de cada directorio, un asterisco ("*") después de un archivo ejecutable y una arroba ("@") después de una liga simbólica.
  • "-X" Ordena los archivos por su extensión (como ".txt"). Los archivos sin extensión aparecen primero.
  • "-t" Ordena los archivos por la fecha de su última modificación, desplegando primero los archivos con fecha de modificación más reciente.
Es posible utilizar múltiples argumentos al mismo tiempo, por ejemplo:
[usuario@maquina usuario]$ ls -alt
Esto mostraría archivos ocultos y no ocultos en un formato largo, ordenados por la fecha de su última modificación. Hay muchos más argumentos, teclea "ls --help" para verlos todos.

Hasta este punto, ya debes tener suficiente información para empezar a trabajar con archivos.