0% encontró este documento útil (0 votos)
5 vistas16 páginas

Operaciones y Estructura de Archivos en Linux

Cargado por

Juan Bernabé
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas16 páginas

Operaciones y Estructura de Archivos en Linux

Cargado por

Juan Bernabé
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Capítulo 6

Operaciones con archivos.


Anexo Linux

Guion-resumen

1. El sistema de archivos 3. Comparar archivos


1.1. El estándar de jerarquía del 3.1. La utilidad diff.
sistema de archivos
3.2. La utilidad file
1.2. Particiones
4. Comprimir datos
1.3. Puntos de montaje
4.1. Comprimir con la utilidad gzip
1.4. El sistema de archivos en red
4.2. Comprimir con la utilidad bzip2
1.5 El sistema de archivos proc
4.3. Comprimir con la utilidad xz
2. Arquitectura del sistema de archivos
4.4. Comprimir ficheros con la utilidad
2.1. Directorios personales zip
2.2. Los directorios /bin y /sbin 4.5. Archivar y comprimir datos con la
utilidad tar
2.3. El directorio /dev
4.6. Copiado disco a disco
2.4. Los directorios /var y /etc
5. Realizar copias de seguridad
2.5. El directorio /boot
2.6. Los directorios /lib y /media
2.7. Directorios adicionales bajo la raíz
del sistema
2.8. Subdirectorios bajo /usr

6-2
Operaciones con archivos

1. El sistema de archivos
Suele decirse que “en Linux todo son ficheros”. Es cierto que, al menos, todo es tra-
tado como tal. Esto quiere decir que cuando se trabaja con archivos y documentos, o con
dispositivos como interfaces de red o impresoras, se interactúa con ellos a través del mismo
tipo de operaciones de entrada y salida.
Al igual que en otros muchos sistemas, en Linux el sistema de archivos está estructu-
rado en forma de árbol. Se trata de un árbol invertido, que comienza por el directorio raíz
(en inglés root directory) y que marca el comienzo de una estructura jerárquica representada
por el carácter barra (/). Es importante dejar claro que el directorio raíz no es el mismo que
el directorio del usuario raíz. Este sistema jerárquico contiene elementos adicionales en su
camino –los nombres de directorios–, que se encuentran separados por el carácter barra
y donde el último elemento del camino se corresponde con el nombre del fichero actual.

1.1. El estándar de jerarquía del sistema de archivos


Desarrollado a partir de las primera versiones del sistema operativo UNIX (por ejemplo
la distribución Berkeley Software Distribution, BSD), este estándar (FHS) proporciona una
estructura unificada a los desarrolladores y a los administradores de sistema, consiguiendo
consistencia entre sistemas y distribuciones.
El sistema Linux soporta varios tipos de sistema de archivos, desde los específicamen-
te creados para él hasta los creados para otros sistemas operativos, por ejemplo MacOS
o Microsoft Windows. Concretamente, Linux soporta los siguientes tipos de sistema de
archivos:
— ext3, ext4, btrfs y xfs, todos ellos sistemas de archivos nativos para Linux.
— vfat, nfts y hfs, todos ellos sistemas de archivos pertenecientes a otros sistemas
operativos.

1.2. Particiones
Cada sistema de archivos reside en una partición del disco. Las particiones ayudan a
organizar los contenidos de los discos en base al tipo de datos y al modo de uso. En el caso de
los programas necesarios para ejecutar el sistema, es habitual que se ubiquen separadamente
del resto en una partición propia (root o /). También es común que los ficheros de los usua-
rios de dicho sistema se ubiquen en su directorio personal (/home). Asimismo, los ficheros
de carácter temporal utilizados en operaciones habituales del sistema suelen ubicarse en una
partición específica. De este modo, habrá menos posibilidades de que el uso del espacio total
de una partición afecte de forma crítica al funcionamiento rutinario del sistema.

1.3. Puntos de montaje


Antes de poder utilizar un sistema de archivos, el paso previo consiste en
montarlo en un punto de montaje dentro de la estructura del árbol. Se trata

6-3
Anexo Linux

de un directorio (que puede estar vacío o no) donde el sistema de archivos es montado.
Este directorio puede ser local o de red. Obviamente, si el directorio no existe, es preciso
crearlo previamente.

Figura 6.1 Ejemplo de puntos de montaje en el dispositivo /dev/sda

Conviene reseñar que si se monta un sistema de archivos en un directorio no vacío, no


se podrá acceder a los contenidos que ya existían hasta que el sistema de archivos no sea
desmontado. Por esta razón, lo más habitual es que los puntos de montaje sean directorios
vacíos.

El comando mount se utiliza para realizar las operaciones de montaje. Algunos ejem-
plos son:

mount muestra todos los sistemas de archivos que se encuentran montados.


mount /dev/sda4 /home montará el sistema de archivos contenido en la partición
de disco /dev/sda4 en el punto de montaje /home.
A menos que el sistema haya sido configurado de otra forma, únicamente el usuario
root puede ejecutar el comando mount.

Es habitual definir los puntos de montaje dentro de un fichero de configuración


para garantizar que se monten automáticamente cuando el sistema arranque. De otro
modo, habría que montar manualmente los puntos en cada arranque. El fichero en
cuestión es/etc/fstab. Conviene consultar la documentación de este fichero para cono-
cer su estructura y sus opciones (por ejemplo a través del comando man fstab).

Otro comando muy útil es df (Disk-free), que muestra información sobre los siste-
mas de archivos montados junto con estadísticas de interés, como el espacio utilizado y el
disponible:

df -Th muestra estadísticas de uso del espacio y el tipo de sistema de


archivos así como los puntos de montaje.

6-4
Operaciones con archivos

1.4. El sistema de archivos en red


Conocido habitualmente como NFS (Network File System), su utilización es uno de
los métodos preferidos para compartir datos entre sistemas físicos. Es muy común agrupar
el montaje de directorios personales de usuarios remotos en un servidor con el objetivo de
proporcionarles acceso a los mismos ficheros y configuraciones. Esta opción posibilita a los
usuarios el inicio de sesión desde distintos equipos manteniendo el acceso a los mismos
recursos.

Existen dos aproximaciones al sistema NFS:

— NFS en el servidor. En el equipo que actúa como servidor es necesario arrancar


los procesos (también conocidos como demonios) mediante el comando:

service nfs start

Existe un fichero de texto que contiene los directorios y los permisos necesarios
para compartir recursos mediante NFS. Es el fichero /etc/exports.

Un ejemplo de su contenido podría ser:

/proyectos *.[Link] (rw)

Esta entrada permitiría que el directorio /proyectos pudiera montarse utilizando


NFS con permisos de lectura (r) y escritura (w) y compartirlo con otros sistemas
pertenecientes al dominio [Link].

Es importante señalar que después de modificar el contenido del fichero /etc/


exports es necesario notificárselo al sistema:

exportfs –av notifica al sistema el contenido de la tabla de todos los sistemas de


archivos exportados por NFS.

service nfs restart realiza lo mismo que el comando anterior, pero de forma más
brusca, pues detiene el servicio NFS durante un momento antes de arrancarlo de
nuevo.

— NFS en el cliente. En las máquinas que actúan como clientes es posible ordenar
el montaje del recurso en red de forma permanente y automática incluyéndolo
en el fichero /etc/fstab. Un ejemplo de la configuración podría ser:

nombre_servidor:/proyectos /mnt/nfs/proyectos nfs defaults 0 0

También es posible montar remotamente el sistema de archivos sin necesidad de


reiniciar el sistema para una única sesión mediante la utilización del comando
mount:
mount nombre_servidor:/proyectos /mnt/nfs proyectos

6-5
Anexo Linux

Figura 6.2 Ejemplo del contenido del fichero /etc/fstab

1.5 El sistema de archivos proc


Algunos sistemas de archivo, como el que se monta en el directorio /proc, son cono-
cidos como pseudo-sistemas de archivo debido a que no cuentan con una presencia per-
manente en el disco.

El sistema de archivos /proc contiene archivos virtuales (únicamente existen en memo-


ria) que permiten una visualización de los datos cambiantes del kernel. Son ficheros y direc-
torios que simulan las estructuras y la configuración del kernel, no son archivos reales, sino
información de ejecución del sistema (memoria, dispositivos montados, configuración del
hardware, etcétera). Se trata de una información muy útil y que, además, no ocupa espacio
en el almacenamiento del disco. Entre estos ficheros destacan:

— /proc/cpuinfo
— /proc/meminfo
— /proc/partitions
— /proc/mounts
— /proc/version

6-6
Operaciones con archivos

El sistema de archivos /proc cuenta con subdirectorios:

— /proc/<identificador_del_proceso>. Existe un subdirectorio para cada proceso


que se encuentra en ejecución en el sistema y contiene información específica
sobre el mismo.
— /proc/sys. En este caso se trata de un directorio virtual que contiene información
sobre todo el sistema, fundamentalmente de su hardware y configuración.

2. Arquitectura del sistema de archivos


2.1. Directorios personales
Cada usuario dispone de un directorio personal ubicado habitualmente bajo el direc-
torio /home. En las distribuciones Linux más modernas el directorio /root es el directorio
personal del usuario root.

El directorio /home se monta con frecuencia como un sistema de archivos en su pro-


pia partición o incluso puede montarse remotamente en red gracias al sistema NFS.

En ocasiones puede resultar conveniente realizar agrupaciones de usuarios basadas


en ciertos criterios, por ejemplo el departamento en el que trabajan o por funciones. En
estos casos puede interesar crear subdirectorios bajo el directorio /home para ubicar estas
agrupaciones.

2.2. Los directorios /bin y /sbin


El directorio /bin contiene archivos binarios ejecutables, comandos necesarios en el
modo de monousuario (en inglés single-user mode) y comandos requeridos por todos los
usuarios de un sistema, como por ejemplo:

COMANDO UTILIZACIÓN

ps Muestra la lista de procesos e información del estado del sistema.

ls Muestra el contenido de un directorio.

cp Copia archivos.

Tabla 6.1 Alguno de los comandos existentes en el directorio /bin

Si se desea conocer el conjunto de programas existentes en el directorio /bin, bastará


con teclear ls /bin.

Los comandos que no son esenciales para el modo de monousuario se


ubican en el directorio /usr/bin. En el directorio /sbin se encuentran coman-
dos esenciales para la administración del sistema, por ejemplo ifconfig y
shutdown. Como en el caso anterior, los comandos no esenciales se separan

6-7
Anexo Linux

ubicándose en el directorio /usr/sbin. Sin embargo, en algunas distribuciones modernas


de Linux está distinción se considera obsoleta y los comandos pueden encontrarse en los
directorios /usr/sbin y /sbin.

2.3. El directorio /dev


Este directorio contiene nodos de dispositivo, una especie de pseudo-archivos utiliza-
dos por la mayoría de dispositivos hardware y software, a excepción de los dispositivos de
red. Algunas características de este directorio son:
— Se encuentra vacío en la partición del disco cuando no está montado.
— Contiene entradas creadas por el sistema udev, que gestiona los nodos en Linux.
Las crea de forma dinámica cuando encuentra los dispositivos.
— Contiene dispositivos bastante diversos, como por ejemplo:
• /dev/sda1. Es la primera partición del primer disco duro.
• /dev/lp1. Es la segunda impresora.
• /dev/dvd1. Es el primer controlador de un dispositivo DVD.

2.4. Los directorios /var y /etc


El directorio /var contiene archivos que con casi total probabilidad cambiarán de
tamaño y contenido mientras el sistema se encuentre en ejecución. Algunos de ellos son:
— Archivos de registro del sistema (logs). Se ubican en /var/logs.
— Paquetes y archivos de bases de datos. Se pueden encontrar en /var/lib.
— Colas de impresión. Se ubican en /var/spool.
— Archivos temporales. Pueden encontrarse en /var/tmp.
El directorio /var puede establecerse en un sistema de archivos propio, de modo que
pueda personalizarse su gestión para que el crecimiento de los archivos no afecte de forma
fatal al resto del sistema. Los directorios que albergan servicios de red (por ejemplo FTP o
el servicio web http) también se ubican bajo /var (/var/ftp y /var/www, respectivamente).
El directorio /etc es el directorio personal de los archivos de configuración del sistema.
No contiene ficheros binarios, aunque sí algunos ficheros con secuencias de comandos
(scripts). Es el caso, por ejemplo, del fichero /etc/[Link], que contiene información
fundamental para que el sistema encuentre en la red la correspondencia entre un nombre
de equipo y su dirección IP (información proporciona por los servidores DNS).
Bajo el directorio /etc se encuentran ficheros como passwd, shadow y
group, que permitirán gestionar cuentas de usuario. Las secuencias de coman-
dos de los niveles de ejecución del sistema también se encuentran en subdi-

6-8
Operaciones con archivos

rectorios bajo /etc (por ejemplo /etc/rc3.d es un fichero que enlaza con scripts que permi-
ten entrar y salir del nivel de ejecución 3). Finalmente, algunas distribuciones amplían los
contenidos del directorio /etc; en el caso de Red Hat añade el subdirectorio sysconfig, que
contiene más archivos de configuración.

2.5. El directorio /boot


Contiene el conjunto de archivos fundamentales para arrancar el sistema. Para cada
versión de kernel instalada en el mismo existen 4 archivos:

1. vmlinuz. Es el kernel de Linux comprimido. Es necesario para arrancar.

2. initramfs (en ocasiones es denominado initrd). Es el sistema de archivos RAM


inicial. También es necesario para arrancar.

3. config. Es el fichero de configuración del kernel. Se utiliza únicamente para fun-


ciones de depuración de errores (en inglés debugging) y contabilidad.

4. [Link]. Es la tabla de símbolos del kernel, únicamente utilizada para depu-


ración de errores.

Cada uno de estos archivos añade a su nombre la versión del kernel.

Bajo el directorio /boot también es posible encontrar los archivos del GRand Unified
Bootloader (GRUB), por ejemplo /boot/grub/[Link] o /boot/grub2/[Link].

Figura 6.3 Ejemplo del contenido del directorio /boot en un sistema CentOS.
Pueden observarse 3 versiones de kernel instaladas

6-9
Anexo Linux

2.6. Los directorios /lib y /media


El directorio /lib contiene librerías utilizadas por los programas ubicados en los direc-
torios /bin y /sbin. El nombre de estos ficheros comenzará por ld o por lib (por ejemplo /
lib/[Link].4).

La mayoría de estas librerías se conocen como librerías cargadas dinámicamente (tam-


bién pueden aparecer en distinta fuentes como shared libraries o shared objects –SO–).

En algunas distribuciones existirá el directorio /lib64, que contendrá las librerías para
sistemas de 64 bits, mientras que /lib contendrá las versiones para los de 32 bits.

También es posible encontrar algunos módulos del kernel con cargados y descargados
del sistema sin necesidad de reiniciar el sistema (por ejemplo el código, ciertos controla-
dores de dispositivos, etcétera. Se localizan en /lib/modules/<número_de_versión_del_ker-
nel>).

En el directorio /media se localizan los dispositivos extraíbles que se encuentran mon-


tados. A menos que la configuración del sistema lo impida, Linux monta automáticamente
estos dispositivos en este directorio cuando los detecta.

2.7. Directorios adicionales bajo la raíz del sistema


Existen varios directorios que se encuentran bajo la raíz (/). Su uso más habitual es el
siguiente:

NOMBRE DEL
UTILIZACIÓN
DIRECTORIO

/opt Paquetes de software opcionales.

Pseudo-sistema de archivos que proporciona información sobre el sistema y el


/sys
hardware.

Alberga archivos temporales. En algunas distribuciones se vacía después de cada


/tmp
reinicio del sistema.

/usr Contiene aplicaciones multiusuario, utilidades y datos.

/srv Contiene datos específicos servidos por el sistema. Se utiliza muy raramente.

Tabla 6.2 Directorios bajo la raíz del sistema

2.8. Subdirectorios bajo /usr


El directorio /usr contiene programas considerados como no fundamen-
tales, esto es, que no son necesarios para arrancar el sistema, así como ficheros
de líneas de comandos para su ejecución (scripts):

6-10
Operaciones con archivos

NOMBRE DEL
UTILIZACIÓN
DIRECTORIO

/usr/bin Directorio principal para los comandos ejecutables del sistema.

/usr/sbin Programas binarios no fundamentales, por ejemplo demonios del sistema.

/usr/lib Librerías para programas existentes bajo /usr/bin y /usr/sbin.

/usr/lib64 Librerías de 64 bits para programas de 64 bits existentes en /usr/bin y /usr/sbin.

/usr/local Alberga datos y programas específicos de un sistema local (localmachine).

/usr/include Ficheros de cabecera para compilar aplicaciones.

Compartir datos utilizados por aplicaciones, normalmente independientes de la


/usr/share
arquitectura.

/usr/src Alberga código fuente, habitualmente utilizado por el kernel de Linux.

Tabla 6.3 Subdirectorios más habituales bajo /usr

3. Comparar archivos
Se trata de una tarea muy habitual para los administradores de sistemas Linux y para
usuarios que trabajan en tareas colaborativas, por ejemplo compartiendo y modificando
archivos. Habitualmente, las herramientas más utilizadas son diff y file.

3.1. La utilidad diff


Se utiliza para comparar ficheros y directorios. Cuenta con muchas opciones, entre
ellas las siguientes:

OPCIÓN UTILIZACIÓN

Proporciona un listado de diferencias que incluye 3 líneas de contexto antes y después


-c
de las líneas que difieren.

-r Compara de forma recursiva el directorio actual y los subdirectorios.

-i Ignora la diferencia entre mayúsculas y minúsculas.

-w Ignora las diferencias en los espacios y las tabulaciones.

Tabla 6.4 Opciones comunes de la utilidad diff

Para comparar dos ficheros, bastará con ejecutar:

diff archivo1 archivo2

6-11
Anexo Linux

Es posible comparar 3 ficheros simultáneamente utilizando diff3, que usa uno de ellos
como referencia para los otros dos. Puede resultar muy útil en el caso de que dos usuarios
estén trabajando independientemente con una versión del mismo fichero original. La uti-
lidad diff3 mostrará las diferencias de ambos ficheros respecto al original. Su sintaxis es:
diff3 mi_fichero fichero_común otro_fichero
Como ya se ha comentado, las modificaciones del código fuente y de los ficheros
de configuración son distribuidas utilizando los parches. Estos son aplicados mediante el
programa patch. Puesto que un parche contiene los cambios requeridos para actualizar la
versión más antigua de un fichero a otra más nueva, podría utilizarse el comando diff para
producir un parche:
diff –Nur fichero_original fichero_nuevo > archivo_parche
La distribución del parche únicamente es más eficiente que la del archivo completo.
Podemos imaginar un cambio que afecte a una línea de un programa que cuente con más
de mil. El parche corrector resultante únicamente contaría con unas pocas líneas.
Para aplicar el parche podría emplearse alguno de los siguientes métodos:
patch –p1 < archivo_parche es el método más utilizado si se desea aplicar parches
a un árbol de directorio completo.
patch fichero_original archivo_parche se utiliza para parchear ficheros individual-
mente.

3.2. La utilidad file


En Linux, la extensión de un archivo no se categoriza como en otros sistemas operativos.
No se puede dar por sentado que un fichero con nombre [Link] sea un fichero de texto
y no un ejecutable, por ejemplo. En Linux, además, la mayoría de las aplicaciones examinan
el contenido de los ficheros en lugar de confiar en su extensión para conocer de qué tipo de
objeto se trata. Es un funcionamiento muy diferente al de Microsoft Windows, por ejemplo,
donde un fichero que cuenta con la extensión .exe representa un archivo binario ejecutable.
La utilidad file examina el contenido y otras características de un archivo para deter-
minar si se trata de un fichero de texto, de una librería compartida, de un programa ejecu-
table, de un script u otro tipo de archivo.
file [Link] devolverá una línea de texto indicando que se trata de un script (por
ejemplo Bourne-Again shell script).

4. Comprimir datos
Los archivos de datos suelen comprimirse para ahorrar espacio en disco y
reducir así el tiempo necesario para su transferencia o para realizar una copia
de seguridad. Linux proporciona varios métodos para llevar a cabo la opera-
ción de compresión de archivos:

6-12
Operaciones con archivos

COMANDO UTILIZACIÓN

gzip Es la utilidad de compresión más utilizada.

bzip2 Consigue archivos más pequeños que en el caso de gzip.

Xz Es la utilidad de compresión de espacio más eficiente que existe en Linux.

Zip Examina y descomprime archivos procedentes de otros sistemas operativos.

Tabla 6.5 Comandos más habituales para comprimir datos en Linux

En general, la utilización de un comando que consigue mejores ratios de compresión


utiliza más tiempo para ello. Los tiempos necesarios para las tareas de descompresión no
varían demasiado en las diferentes herramientas.

Existe la opción de agrupar un conjunto de archivos en uno para, posteriormente,


comprimirlo en una única operación. Esta posibilidad la brinda la utilidad tar.

4.1. Comprimir con la utilidad gzip


Comprime a gran velocidad, razón por la que es la utilidad de compresión más usada
en Linux. Algunos ejemplos de su uso son:

— gzip * comprime todos los archivos presentes en el directorio actual. Cada archivo
es comprimido y renombrado añadiendo la extensión .gz.
— gzip –r directorio1 comprime todos los ficheros existentes en el directorio directo-
rio1 y en todos subdirectorios por debajo.
— gunzip archivo1 busca el archivo [Link] y lo descomprime. Funciona de
forma que el comando gzip –d.

4.2. Comprimir con la utilidad bzip2


De sintaxis parecida a gzip, pero utiliza un algoritmo de compresión diferente que le
permite conseguir archivos más pequeños. A cambio, el proceso de compresión es más
largo, por lo que suele utilizarse en el caso de archivos de gran tamaño. Algunos ejemplos
de su uso son:

— bzip2 * comprime todos los archivos existentes en el directorio actual y reemplaza


cada archivo añadiendo la extensión .bz2.
— bunzip2 *.bz2 descomprime todos los archivos con extensión bz2 que encuentre
en el directorio actual. Funciona de igual forma que el comando
bzip2 -d.

6-13
Anexo Linux

4.3. Comprimir con la utilidad xz


Es la utilidad más eficiente a la hora de comprimir, aunque a costa de perder rapidez
en el proceso. De hecho, el sitio web [Link] la utiliza para almacenar los archivos del
kernel de Linux.

COMANDO UTILIZACIÓN

Comprime todos los ficheros del directorio actual reemplazando


xz *
cada uno de ellos con un fichero con extensión .xz.

Comprime el archivo fichero1 y lo reemplaza por el archivo fiche-


xz fichero1
[Link]. Si el proceso termina correctamente, elimina fichero1.

Descomprime el archivo [Link] creando el archivo fichero1.


xz –dk [Link] Aunque el proceso termine correctamente no elimina el fichero
[Link].

Descomprime, en un único comando, una mezcla de archivos


xz –dcf [Link] [Link] > [Link]
comprimidos y no comprimidos enviándolos a una salida estándar.

xz –d *.xz Descomprime todos los archivos comprimidos con xz.

Tabla 6.6 Ejemplos de uso de la utilidad de compresión xz

4.4. Comprimir ficheros con la utilidad zip


En Linux no es habitual utilizar zip para comprimir, sino más bien para examinar y
descomprimir archivos procedentes de otros sistemas operativos. Se utiliza zip cuando hay
que tratar con un archivo que ha sido comprimido con la utilidad zip por un usuario de
Microsoft Windows.
Algunas de las opciones más comunes son:
— zip archivo1 * comprime todos los archivos existentes en el directorio actual y
los concentra en el fichero [Link].
— zip -r [Link] ~ archiva todos los ficheros existentes en el directorio de inicio
de sesión del usuario (~) así como los subdirectorios por debajo concentrándolos
en el fichero [Link].
— unzip [Link] extrae todos los archivos comprimidos en [Link] y los
ubica en el directorio actual.

4.5. Archivar y comprimir datos con la utilidad tar


Históricamente, la utilidad tar (tape archive, archivo en cinta) se utilizaba
para archivar datos en una cinta magnética. Este programa permite crear o
extraer ficheros de un fichero archivado. Al mismo tiempo, permite comprimir
el fichero mientras se crea y descomprimirlo mientras se extrae su contenido.

6-14
Operaciones con archivos

COMANDO UTILIZACIÓN

tar xvf [Link] Extrae todos los ficheros existentes el fichero [Link].

Crea el fichero [Link] comprimiendo con gzip el


tar zcvf [Link] directorio1
contenido del directorio directorio1.

Crea el fichero [Link].bz2 comprimiendo con bz2 el


tar jcvf [Link].bz2 directorio1
directorio directorio1.

Crea el fichero [Link] comprimiendo con xz el direc-


tar jcvf [Link] directorio1
torio directorio1.

Extrae todos los ficheros existentes en el fichero archivo1.


tar xvf [Link]
[Link].

Tabla 6.7 Ejemplos de uso de la utilidad tar

Es posible separar las acciones de archivado y de compresión, pero es más lento y pro-
voca un gasto innecesario de espacio pues necesita crear archivos .tar intermedios.

4.6. Copiado disco a disco


El programa dd es muy útil para realizar copias de espacio en disco sin procesar o
en crudo (en inglés raw). Un ejemplo lo constituye el copiado de la Master Boot Record
(MBR), esto es, el sector del disco de tamaño 512 bytes que almacena la tabla que define
las particiones de ese disco.

dd if=/dev/sda of=[Link] bs=512 count=1


También es común utilizar dd para realizar el copiado exacto de un disco sobre otro.
Puede deducirse que esta utilidad es de relevancia en la aplicación de técnicas de análisis
forense, pues permitirá la obtención de una copia exacta de la situación de un dispositivo
de almacenamiento (incluso de la memoria RAM) que haya sido comprometido. Un ejem-
plo de su sintaxis es:

dd if=/dev/sda of=/dev/sdb
ATENCIÓN: esta operación eliminará todo el contenido del segundo disco

5. Realizar copias de seguridad


Existen múltiples métodos para realizar copias de seguridad, tanto para datos como
para sistemas completos. Los sistemas Linux proporcionan algunas opciones básicas, entre
ellas el uso de comandos de copiado como cp y rsync.

Aunque ambos pueden utilizarse para sincronizar árboles de directorio en


su totalidad, rsync es más robusto y eficiente, pues comprueba si el fichero
copiado ya existe. Si es el caso y no existen cambios en su tamaño o en la hora

6-15
Anexo Linux

de modificación, rsync evitará una copia innecesaria, ahorrando tiempo. Además, debido
a que rsync únicamente copia las partes de los archivos que han cambiado, es más rápido.

La utilidad rsync demuestra su eficiencia cuando se trata de realizar copias de un árbol


de directorio a otro en modo recursivo, puesto que únicamente se transmiten por la red
los cambios.

Un ejemplo del uso de rsync podría ser:

rsync –r directorio1 directorio2 copiará recursivamente el contenido del directorio1


en otra ubicación (que puede ser local o de red) con el nombre directorio2.

6-16

También podría gustarte