Manejo básico de archivos

Conceptos Claves

  • Copiar, mover y eliminar archivos y directorios de forma individual.
  • Copiar múltiples archivos y directorios de forma recursiva.
  • Eliminar archivos y directorios de forma recursiva.
  • Usar expansiones y comodines en los comandos.
  • Uso de find para localizar y actuar sobre los archivos basándose en el tipo, tamaño o tiempo.
  • Uso de tar, cpio y dd.

Términos y Utilidades

  • cp
  • find
  • mkdir
  • mv
  • ls
  • rm
  • rmdir
  • touch
  • tar
  • cpio
  • dd
  • file
  • gzip
  • gunzip
  • bzip2
  • file globbing

Introducción

Linux no es mas que una colección de archivos almacenados en el disco duro de la maquina. Otros archivos dentro del sistema pueden contener los datos de usuarios. Saber administrar estos archivos es una tarea importante para el administrador.

¿Cómo son los nombres de archivos en Linux?

Los nombres de archivos en Linux distinguen mayúsculas de minúsculas, esto es, son "case sensitive". Los archivos README, readme, REadme y rEadme son archivos distintos y por lo tanto al ser nombres distintos pueden estar en el mismo directorio.

En Linux los archivos no tienen por qué tener una extensión. La suelen tener a modo orientativo, pero no es en absoluto necesario. Linux sabe qué contiene cada archivo independientemente de cuál sea su extensión. Por comodidad, podremos llamar a todos nuestros archivos de texto con la extensión .texto, o a todos nuestros documentos con la extensión .documento, de esta manera, podremos luego agruparlos más fácilmente.

Los nombres de archivos o directorios pueden ser muy largos, de más de 200 caracteres, lo cual nos da bastante flexibilidad para asociar el nombre de un archivo a lo que contiene. No obstante, hay ciertos caracteres que nunca se deberían utilizar a la hora de nombrar un archivo. Uno de ellos es el espacio, nunca llamaremos a un fichero con un nombre que contenga un espacio. Tampoco son recomendados otros caracteres raros como signos de puntuación (a excepción del punto), acentos o la ñ. En algunos casos Linux ni siquiera nos permitirá usarlos.

Los recomendables son las letras A-Z, a-z, los números (0-9), el punto, el guión (-) y el guión bajo (_) para nombrar un archivo. Los acentos y la ñ tampoco se recomiendan. Los ficheros y directorios ocultos en Linux comienzan su nombre por un punto (.)

Reglas de expansión con uso de comodines

Comodines

  • Signo de pregunta ?: Iguala a cualquier carácter particular. Por ejemplo p??o igual a paco, pico y peco.
  • Asterisco *: Iguala cualquier carácter o conjunto de caracteres p*o igual po, pozo, paco, pico, peco, piso, pego, etc.
  • Signo de exclamación !: Niega el valor.
  • Valores entre corchetes[]: Iguala cualquier grupo de caracteres que se indique entre los corchetes p[ai][cz]o. Es posible especificar un rango de valores, como p[a-z]co.

Los comodines se implementan en el shell y se utilizan en cualquier comando que se invoque con estos parámetros. En ingles, el proceso de expansión de comodines también se conoce como globbing o file globbing.

Inodos

La información de identificación para un objeto de un filesystem es conocida como el inodo. Los inodos almacenan información acerca de estos objetos como su ubicación en el disco, la fecha de modificación, parámetros de seguridad, etc. Cada filesystem es creado con un numero finito de inodos, que se calcula en base al tamaño del filesystem, entre otras cosas. Múltiples objetos pueden compartir el mismo inodo, lo que se conoce como vinculación de objetos (directorios u archivos).

Comandos de manejo de archivos

Comando ls

Descripción

Lista los archivos y directorios del directorio donde estemos. También se puede listar otros directorios distintos de donde estamos.

Sintaxis

ls [opciones] [directorio]

Opciones

Opción Descripción
-l Muestra la vista en forma de lista
-h Muestra MB, GB y TB.
-a Muestra archivos ocultos.
-R Muestra de forma recursiva el contenido del directorio
-i Muestra información acerca de inodos.

Comando cp

Descripción

Acepta como argumentos una fuente y un destino, de forma que el primer parámetro de cp es el nombre del archivo que hay copiar y el segundo es el lugar donde se desea guardar la copia. Cabe destacar que el comando cp, no borra ningún archivo, así que no hace nada que pueda dañar al sistema.

El comando cp puede copiar múltiples archivos entre directorios si el primer parámetro es un archivo, y el destino es un directorio. En este caso, el nombre destino coincidirá con el original para cada archivo.

Sintaxis

cp [opciones] fuente destino

Ejemplo

$ cp –R carpeta1 carpeta2

Comando rm

Descripción

Se usa para eliminar archivos de un directorio.

Opciones

Opción Descripción
-f Elimina todos los archivos en un directorio sin preguntar al usuario.
-i Interactivo. Con esta opción, rm pide confirmación antes de eliminar cualquier archivo.
-r (ó) –R Elimina directorios y subdirectorios reiterativamente en la lista de argumentos. El directorio será vaciado de archivos y eliminado. Normalmente se pregunta al usuario antes de eliminar cualquier archivo protegido contra escritura que contenga el directorio.

Comando mv

El comando mv permite mover de lugar y renombrar archivos.

Sintaxis

mv [opciones] fuente destino

Comando touch

Descripción

Se utiliza para cambiar la fecha y hora de última modificación de un archivo. También puede utilizarse para crear un archivo vacío.

Comando mkdir

Descripción

Sirve para crear directorios.

Sintaxis

mkdir [opciones] nombre_directorio

Comando file

Descripción

Me indica que tipo de archivo es un archivo.

Sintaxis

file [opciones]

Código de tipo de archivos

Código Tipo de Archivo Descripción
- Archivo normal de datos Puede ser texto, un programa ejecutable, gráficos, datos comprimidos o cualquier otro tipo de datos.
d Directorio Los directorios son archivos, pero contienen nombres de archivos y punteros a inodos de disco. En los directorios, el bit de ejecución indica que ese directorio se puede usar para buscar dentro de sus contenidos.
l Vinculo simbólico el archivo contiene el nombre de otro archivo o directorio. Cuando Linux accede al Vinculo simbólico, trata de leer el archivo al cual apunta el vinculo.
p Tubería nombrada Una tubería habilita a dos programas en ejecución a comunicarse entre ellos. Uno abre la tubería para lectura y el otro para escritura, permitiendo que se transfieran datos entre los dos programas.
s Socket Es similar a una tubería, pero permite enlaces de red y bidireccionales.
b Dispositivo de bloque Un archivo de corresponde a un dispositivo de hardware al cual y desde el cual se transmiten datos en bloques de mas de un byte. Dispositivos de disco(discos duros, CD-ROMs, etc) son dispositivos de disco comunes.
c Dispositivo de caracteres Un archivo que corresponde a un dispositivo de hardware al cual se transfieren datos en unidades de un byte. Ej: Puerto paralelo, puerto serial RS-232 y dispositivos de audio.

Comando tar

Es un comando muy utilizado para realizar copias de resguardo. El nombre tar proviene de tape archiver. Los tarballs (archives de tar comprimidos con gzip o bzip2), son muy utilizados para copiar conjuntos de archivos entre computadoras.

Opción Abreviación Descripción
--create c Crea un archive
--concatenate A Agrega archivos tar a un archive.
--append r Agrega archivos normales a un archive
--update u Agrega archivos que son nuevos en un archive
--diff o --compare d Compara un archive con los archivos en disco
--list t Lista los contenidos de un archive
--extract o --get x Extrae archivos de un archive

Ejemplos

Crear un tar

tar -cf home.tar /home/

Listar los archivos en un archive

# tar -tf home.tar

Extraer un solo archivo (.profile)

tar -xf home.tar .profile

Extraer un tar completo

tar -xf home.tar

Comando cpio

Es similar a tar. cpio necesita que se le provea una lista de archivos. Esta puede ser generada por find o ls y entregada a cpio por medio de una tubería. A diferencia de tar, cpio guarda por defecto los archivos con la ruta absoluta. Lo que significa que a la hora de restaurarlos, lo hará en su locación original.

Modos de operación

Modo Descripción
Copy-Out Mode Este modo, que se usa con las opciones --create o -o, crea un archivo y copias archivos en el.
Copy-In Mode Se activa el modo copy-in usando las opciones -i o --extract. Este modo extrae datos en un archive existente.
Copy-Pass Mode: Este modo es activado por la opción -p o --pass-trough. Combina los modos Copy-Out y Copy-In, permitiendo copiar un árbol de directorios de un lado a otro.

Ejemplos

Para realizar un backup, se usa la opción - -create o –o . La cual puede ser combinada con otras opciones, como –v (verbose).

$ ls | cpio -ov > /tmp/object.cpio

Para restaurar se usa la opción - - extract o –i. En este caso con la opción –d para crear un directorio en caso que sea necesario.

$ cpio -idv < /tmp/object.cpio

Comando dd

Es una utilidad de copiado de bajo nivel, con la habilidad de aplicar ciertas transformaciones al mismo tiempo. Como herramienta de backup, dd es útil para hacer copias de sistemas de archivos enteros, incluso aquellos no soportados por Linux o gravemente dañados.

bs=tamaño: Opera en bloques del tamaño indicado.

count=bloques: Copia el numero indicado de bloques.

if=archivo: Usa archivo como el input, si se omite, es usa stdin.

of=archivo: Escribe la salida al archivo especificado.

Para resguardar una partición, se especifica el nombre del archivo del dispositivo como if (input file) y una partición, archivo o dispositivo como of (output file).

Ejemplo

dd if=/dev/sda2 of=/media/backups/sda2-back.img

De esta manera se resguarda la partición /dev/sda2 dentro de una archivo de imagen en el disco externo. Para restaurar la copia de resguardo, se invierten los operadores if y of.

Para usar compresión, se puede omitir el of y usar dd en conjunto con un programa de compresión con una tubería:

dd if=/dev/sda2 | gzip -9 > /media/backups/sda2-back.img.gz

gunzip /media/backups/sda2-back.img.gz - | dd of=/dev/sda2

Ventajas de dd

Independencia de FS: Se puede realizar copias cualquier cosa con dd, incluso si el soporte en Linux es limitado para ese determinado sistema de archivos o si se trata de particiones dañadas.

Desventajas de dd

Al realizar todo en una base de byte a byte, desperdicia espacio copiando espacio no utilizado.

Compresión con gzip

Descripción

El comando gzip sirve para comprimir y descomprimir archivos usando un algoritmo de compresión (Lempel-Ziv).

Ejemplos

Para Comprimir

$ gzip home.tar

Para descomprimir podemos usar gunzip.

$ gunzip home.tar.gz

o gzip con la bandera –d.

$ gzip –d home.tar.gz

Compresión con bzip 2

Descripción

Este otro programa de compresión utiliza un algoritmo diferente (Burrows-Wheeler). Las opciones que utiliza el comando son similares al programa gzip.

Sintaxis

bzip2 [opciones] [nombre_archivos]

bunzip2 [opciones] [nombre_archivos]

results matching ""

    No results matching ""