Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Linux no usa letras de unidad en sus nombres de ruta de archivo. En Windows, la únidad física
de disco determina en nombre de la ruta, donde es asignada una letra de unidad a cada unidad
de disco física, y cada unidad contiene su propia estructura de directorios.
C:\Users\Rich\My Documents\test.doc
El archivo test.doc está en el directorio My Documents, dentro del directorio Rich, dentro del
directorio Users, dentro de la unidad (o partición de disco) asignada a la letra C.
Este no es el método usado por Linux, que almacena archivos en una estructura de directorios
simple, llamado directorio virtual. El directorio virtual contiene rutas de archivo de todos los
dispositivos de almacenamiento instalados en el sistema, todo en una estructura de directorios
única.
La estructura de directorio virtual contiene un directorio base único, llamado root. A partir de
ahí, los directorios y archivos son listados bajo el root según la ruta para acceder a ellos, de
forma similar a como hace Windows.
SLASHES
Linux usa el forward slash (/) en lugar del backslash (\). El backslash denota en Linux un
carácter de escape. Por ejemplo:
/home/rich/Documents/test.doc
El archivo test.doc está en el directorio Documents, bajo el directorio rich, bajo el directorio
home, sin indicar información de la unidad donde está.
El primer disco duro instalado en Linux se llama el disco raíz (root drive). Este contiene el
núcleo del directorio virtual. Todo lo demás se construye desde aquí. En el disco raíz, Linux
crea directorios especiales llamado puntos de montaje. Los puntos de montaje serán
directorios en el directorio virtual cuando asignamos dispositivos de almacenamiento
adicionales. El directorio virtual hace que directorios y archivos aparezcan dentro de esos
directorios de punto de montaje, incluso aunque estén físicamente almacenados en un disco
diferente.
A menudo los archivos de sistema están físicamente en el disco root, mientras que los archivos
de usuario lo están en un disco diferente. Por ejemplo, el segundo disco puede estar montado
en la ubicación /home.
El sistema de archivos de Linux ha evolucionado a partir de la estructura de archivos de Unix,
donde no siempre ha habido una estructura estándar de sistema de archivos. Linux comenzó
también así, pero se ha hecho un esfuerzo por estandarizar la estructura de directorios de
Linux con el Linux Filesystem Hierarchy Standard (FHS).
Directory Usage
/ The root of the virtual directory. Normally, no files are placed here
/bin The binary directory, where many GNU user-level utilities are stored
/boot The boot directory, where boot files are stored
/dev The device directory, where Linux creates device nodes
/etc The system configuration files directory
/home The Home directory, where Linux creates user directories
/lib The library directory, where system and application library files are stored
/media The media directory, a common place for mount points used for removable
media
/mnt The mount directory, another common place for mount points used for
removable media
/opt The optional directory, often used to store optional software packages
/root The root user account’s Home directory
/sbin The system binary directory, where many GNU admin-level utilities are stored
/tmp The temporary directory, where temporary work files can be created and
destroyed
/usr The user-installed software directory
/var The variable directory, for files that change frequently, such as log files
Al crear una cuenta de usuario, el sistema normalmente asigna un directorio único para la
cuenta. Para movernos por la estructura de directorio virtual, lo haremos desde el prompt de
interfaz de línea de comandos (CLI).
RECORRIENDO DIRECTORIOS
cd destino
Ruta absoluta.
Ruta relativa.
RUTAS ABSOLUTAS
Podemos referenciar un nombre de directorio dentro del directorio virtual usando una ruta
absoluta. La ruta absoluta define exactamente donde está el directorio dentro de la estructura
del directorio virtual, comenzando en el root. Por consiguiente, para referenciar el directorio
ssl que está dentro del directorio lib, que a su vez está dentro del directorio usr:
$ cd /usr/lib/ssl
RUTAS RELATIVAS
Las rutas relativas permite especificar un directorio de destino, relativo a nuestra situación
actual, sin tener que comenzar por root. Una ruta relativa no comienza con slash. En su lugar,
comienza o bien con un nombre de directorio (si nos vamos a mover a un directorio que está
bajo nuestro directorio actual) o un carácter especial que indique una situación relativa a
nuestro directorio actual. Dos caracteres especiales son:
Por ejemplo, si estamos en systemd que está bajo etc, y necesitamos ir a ssl que también está
bajo etc:
$ cd ../ssl
$ cd ../../etc
ARCHIVOS LINUX
Una de las cosas que hicieron a Unix un sistema operativo único fue que trataba todo en el
sistema como un archivo (dispositivos, datos, conexiones de red, etc.). Esto simplificaba la
forma en que los programas interactuaban con el hardware y con otros programas, pues no
importa de donde vengan los datos, el sistema los maneja de la misma forma.
Sin embargo, ya que todo es un archivo, ha ciertas cosas que nos pueden causar problema,
como por ejemplo intentar identificar tipos de archivo.
TIPOS DE ARCHIVO
Los archivos Linux cubren un amplio rango de tipos de archivo. Todo desde datos de texto a
programas ejecutables. Ya que los archivos de Linux no requieren extensión, a veces puede ser
difícil decir qué archivos son programas, cuáles son datos de texto y los que son datos binarios.
Por ello tenemos el comando file, que devuelve el tipo del archivo especificado. Y si es de
datos, también intentará detectar qué contiene el fichero.
$ file myprog.c
$ file myprog
myprog: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=a0758159df7a479a54ef386b970a26f076561dfe, for GNU/Linux 3.2.0, not
stripped
NOMBRES DE ARCHIVO
Linux tiene un estándar diferente a Windows para nombrar los ficheros. Linux no requiere
extensión para identificar el tipo de fichero en el sistema (aunque se permiten). Los nombres
de fichero pueden ser de cualquier longitud (aunque 255 caracteres es un límite práctico para
que los programas no tengan problemas con ellos). Pueden contener mayúsculas, minúsculas,
números y la mayoría de caracteres especiales (los únicos no permitidos son el slash / y el
carácter NULL). Pueden contener espacios y caracteres en lenguajes extranjeros. Sin embargo,
el nombre debería siempre comenzar con una letra o un número.
Ejemplos válidos:
testing
A test file.txt
4_data_points
my.long.program.name
CASE SENSITIVITY
ARCHIVOS OCULTOS
Los archivos ocultos no aparecen en los listados normales de archivos. Linux no usa
propiedades de archivo para ocultarlos. En su lugar, usa el nombre de archivo. Los nombres
que comienzan por punto (.) se consideran archivos ocultos que no aparecerán en listados
normales cuando usamos el comando ls y no se muestran cuando usamos un gestor de
ficheros gráfico. Sin embargo, podemos usar opciones para mostrarlos con el comando ls:
$ ls
mydata.txt
mydirectory
myprog
myprog.c
$ ls -a
.
..
.bash_logout
.cache
mydata.txt
myprog.c
myprog
INODOS
Linux tiene que mantener el seguimiento de un montón de información para cada archivo del
sistema. La manera en que lo hace es usando nodos índice (inodos). Linux crea un inodo para
cada archivo del sistema, para almacenar las propiedades del archivo. Los inodos están ocultos
a la vista, y solo el sistema operativo puede acceder a ellos. Cada inodo tiene un número
asignado, llamado número de inodo. Esto es lo que Linux usa para referenciar el archivo, no el
nombre. Los números de inodo son únicos en cada partición física del disco.
Linux también crea una tabla en cada partición de disco llamada tabla de inodos. Es un listado
que coincide con cada número de inodo asignado a cada archivo en la partición de disco.
Cuando creamos y eliminamos archivos, Linux automáticamente actualiza la tabla de inodos.
Sin embargo, si el sistema sufriera un apagado abrupto (como un fallo en el suministro de
energía), la tabla de inodos podría corromperse. Afortunadamente, hay utilidades que pueden
ayudar a reorganizar la tabla de inodos y prevenir la pérdidad de datos. Aunque si la tabla de
inodos fuera irreparable, no podríamos acceder a los archivos en la partición de disco, incluso
aunque estos estuvieran aún ahí.
Para ver los números de inodo de los ficheros, usaremos la opción -i del comando ls. Podemos
combinarla con la opción -l para obtener un listado largo que muestre más detalles de los
archivos:
$ ls -il
total 36
263784 -rw-rw-r-- 2 sysadmin sysadmin 71 Dec 19 13:17 copy.c
262804 -rw-rw-r-- 1 sysadmin sysadmin 15 Dec 19 13:26 mydata.txt
395365 drwxrwxr-x 2 sysadmin sysadmin 4096 Dec 19 13:26 mydirectory
264036 -rwxrwxr-x 1 sysadmin sysadmin 16696 Dec 19 13:18 myprog
263784 -rw-rw-r-- 2 sysadmin sysadmin 71 Dec 19 13:17 myprog.c
El primer número del listado es el número de inodo. Podemos ver que el número de inodo de
myprog.c es el mismo que el de copy.c. Esto implica que hay un enlace duro (físico) entre
ambos archivos. Este enlace apunta a la misma localización física en el disco que el archivo
original, por lo que sus números de inodos son los mismos.
La característica más básica del shell es la habilidad para ver qué archivos están disponibles en
el sistema. El comando ls es la herramienta para ello.
LISTADO BÁSICO
El comando ls es la forma más básica para mostrar ficheros y directorios que hay en el
directorio actual:
$ ls
Si no tenemos un emulador de terminal que soporte color, podemos usar el parámetro -F para
distinguir ficheros de directorios:
$ ls -F
Este parámetro marca los directorios con un slash (/). También marca los ficheros ejecutables
con un asterisco (*). El comando ls no muestra los archivos ocultos.
$ ls -F -R
. ..
copy.c mydata.txt mydirectory/ myprog* myprog.c
./mydirectory:
file1 file2 file3
LISTADO MODIFICADO
$ ls -l
total 36
-rw-rw-r-- 2 sysadmin sysadmin 71 Dec 19 13:17 copy.c
-rw-rw-r-- 1 sysadmin sysadmin 15 Dec 19 13:26 mydata.txt
drwxrwxr-x 2 sysadmin sysadmin 4096 Dec 19 13:51 mydirectory
-rwxrwxr-x 1 sysadmin sysadmin 16696 Dec 19 13:18 myprog
-rw-rw-r-- 2 sysadmin sysadmin 71 Dec 19 13:17 myprog.c
Junto al nombre, muestra información adicional. La primera línea del listado muestra el
número total de bloques contenidos dentro del directorio. A continuación, cada línea contiene
la siguiente información acerca de cada fichero o directorio:
El tipo de archivo, tal como si es directorio (d), fichero (-), dispositivo de caracteres (c)
o dispositivo de bloques (b).
La cadena de permisos para el archivo, que consiste en los permisos para el usuario,
para el grupo y para otros usuarios.
El número de hard links al archivo.
El nombre de usuario de propietario del archivo.
El nombre del grupo al que el archivo pertenece.
El tamaño del archivo en bytes.
La fecha y hora de la última modificación.
El nombre del archivo.
El comando ls tiene montones de parámetros. Podemos verlo en las diferentes páginas del
comando man. El comando ls utiliza dos tipos de parámetros:
Los primeros son siempre precedidos de un guión (-). Los segundos son más descriptivos y
están precedidos de doble guión (--). Muchos parámetros tienen ambas versiones, y otros solo
un tipo. Veamos algunos de los más populares:
Podemos usar múltiples parámetros. Los parámetros con doble guión deben estar separados,
pero los de un guión pueden combinarse juntos usando solo un guión para todos. Una
combinación habitual es usar el -a para listar todos los archivos, -i para listar el inodo de cada
archivo, -l para producir un listado largo y -s para listar el tamaño de bloque de los archivos:
$ ls -sail
total 132
265238 4 drwxr-xr-x 4 sysadmin sysadmin 4096 Dec 19 13:45 .
262145 4 drwxr-xr-x 3 root root 4096 Nov 4 18:56 ..
MANEJO DE DIRECTORIOS
Hay unos pocos comandos que trabajan tanto con ficheros como con directorios, y algunos
que trabajan solo con directorios.
CREAR DIRECTORIOS
$ mkdir dir3
ELIMINAR DIRECTORIOS
Eliminar directorios puede ser peligroso. Hay muchas posibilidades de que ocurran cosas malas
si comenzamos a eliminar directorios. Bash intenta protegernos tanto como pueda. El
comando básico para eliminar un directorio es rmdir:
$ rmdir dir3
$ rmdir mydirectory
Por defecto, el comando rmdir solo funciona para eliminar directorios vacíos. Podemos
eliminar directorios no vacíos usando el parámetro --ignore-fail-on-non-empty.
Podemos también usar el comando rm. Si lo usamos sin parámetros o con ficheros,
obtendremos un error:
$ rm mydirectory
$ rm -r mydirectory
MANEJO DE FICHEROS
CREAR FICHEROS
En algún momento surgirá la situación de necesitar crear un fichero vacío. A veces las
aplicaciones esperan un fichero de log antes de ponerse a escribir en él. En esos casos
podemos usar el comando touch, que crea un fichero vacío:
$ touch test1
$ ls -il test1
El comando touch crea el nuevo fichero especificado y asigna nuentro nombre de usuario
como propietario. La longitud del fichero es cero. El comando touch puede utilizarse también
con un fichero existente, para cambiar las fechas de acceso y modificación sin alterar el
contenido del fichero:
$ touch test1
$ ls -il test1
263320 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:30 test1
Ahora la fecha de modificación está actualizada. Si queremos cambiar solo la fecha de acceso,
usaremos el parámetro -a. Para cambiar solo la fecha de modificación, usaremos el parámetro
-m.
Por defecto, touch usa la fecha actual. Podemos especificar la fecha usando el parámetro -t
con un valor timestamp específico:
COPIAR FICHEROS
$ cp test1 test2
$ ls -il test*
$ cp -i test1 test2
$ mkdir dir1
$ cp test1 dir1
$ ls -il dir1
total 0
395391 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:31 test1
Los ejemplos anteriores usan rutas relativas, pero podemos usar rutas absolutas. Para copiar
un fichero al directorio actual:
$ cp /home/sysadmin/dir1/test1 .
$ ls -il test1
Parameterf Description
Usaremos el parámetro -p para preservar las fechas de acceso o modificación del fichero
original para el fichero copiado:
$ cp -p test1 test3
$ ls -il test*
$ cp -R dir1 dir2
$ ls -l dir*
dir1:
total 0
-rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:31 test1
dir2:
total 0
-rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:38 test1
$ cp test* dir2
$ ls -al dir2
total 8
drwxrwxr-x 2 sysadmin sysadmin 4096 Dec 19 14:42 .
drwxr-xr-x 5 sysadmin sysadmin 4096 Dec 19 14:38 ..
-rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:42 test1
-rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:42 test2
-rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 14:42 test3
Esto ha copiado todos los ficheros que comenzaban con “test” al directorio dir2.
ENLAZAR FICHEROS
El hard link crea un fichero separado que contiene información acerca del fichero original y
dónde localizarlo. Cuando referenciamos un fichero hard link, es como si referenciáramos el
fichero original:
$ cp -l test1 test4
$ ls -il test*
El parámetro -l ha creado un hard link test4 para el fichero test1. El listado muestra como sus
números de inodo son el mismo (hay un único inodo), es decir, son el mismo fichero.También
el contador de links (tercer elemento de la lista) ahora muestra que ambos ficheros tienen 2
enlaces.
Solo podemos crear un hard link entre ficheros que estén en la misma partición de disco. No
podemos crear enlaces entre ficheros bajo puntos de montaje separados. En ese caso,
tendrémos que usar un soft link.
El parámetro -s crea un soft link (enlace simbólico).
$ cp -s test1 test5
$ ls -il test*
El nuevo test5 tiene un número de inodo diferente al de test1, indicando que Linux lo trata
como un fichero separado. El tamaño de archivo es diferente. Un fichero enlazado necesita
almacenar solo la información acerca del fichero con el que está enlazado, no el contenido del
fichero. Además, el nombre de fichero muestra la relación entre ambos ficheros, y también
cambia el número que indica la cantidad de enlaces.
En lugar de usar el comando cp para enlazar ficheros, podemos usar el comando ln. Por
defecto, el comando ln crea hard links. Si queremos soft links, deberemos usar el parámetro -s.
Hay que tener cuidado al copiar ficheros enlazados. Si usamos el comando cp para copiar un
fichero que está enlazado a otro fichero origen, todo lo que estamos haciendo es crear otra
copia del fichero origen, lo que puede confundir.
En lugar de copiar el fichero enlazado, podemos crear otro enlace al fichero original. Podemos
tener muchos enlaces al mismo fichero sin problema. Sin embargo, lo que no queremos es
crear soft links a otros ficheros que ya son soft links. Esto crea una cadena de enlaces que no
solo puede resultar confuso, sino que dicha cadena puede ser fácilmente rota, causando todo
tipo de problemas.
RENOMBRAR FICHEROS
En Linux, renombrar ficheros se llama mover ficheros. El comando mv está disponible tanto
para ficheros como para directorios:
$ mv test2 test6
$ ls -il test*
Al mover el fichero hemos cambiado el nombre de fichero, pero mantenido el mismo número
de inodo y valor timestamp. Mover un fichero con soft links es un problema:
$ mv test1 test8
$ ls -il test*
El fichero test4 que usa un hard link aún usa el mismo número de inodo, lo cual está bien. Sin
embargo, el fichero test5 ahora apunta a un fichero no válido, y ya no es un enlace válido. Si
nuestra terminal soporta colores, es probable que aparezca en color rojo.
$ mv dir2 dir4
ELIMINAR FICHEROS
$ rm -i test3
$ ls -il test*
De igual modo que con el comando rmdir, podemos usar el parámetro -i para que nos
pregunte. No existe papelera en el CLI. Una vez eliminado un fichero, ya no es recuperable.
WILDCARDS
Los comandos ls, cp, mv y rm pueden trabajar con más de un fichero o directorio. Para ello
utilizaremos una técnica llamada globbing. Globbing es básicamente la técnica de usar
caracteres wildcard dentro de un nombre de fichero o directorio. Esto permite especificar un
patrón que coincida con múltiples archivos. Hay dos caracteres básicos que usar:
Por ejemplo, especificando file?.txt en un comando rm, eliminará cualquier fichero que
comience por “file” seguido de un carácter, y que acabe con .txt:
$ ls -il file*
265217 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:05 file.txt
265214 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:05 file11.txt
263855 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:04 file1.txt
265146 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:04 file2.txt
$ rm file?.txt
$ ls -il file*
$ rm file*
$ ls -il file*
QUOTING
Otra posibilidad es que debamos usar ficheros o directorios que contengas espacios en sus
nombres. Esto es totalmente válido en Linux, pero puede causarnos algún problema:
$ ls -l long*
El problema es que, por defecto, el comando rm usa un espacio para indicar el fin de un
nombre de fichero, por lo que piensa que queremos eliminar tres ficheros separados (long, file
y name.txt). Por ello necesitamos acotar (quoting) los nombres que contengan espacios:
CASE SENSITIVITY
Hay que tener en cuenta que Linux es case-sensitive, por lo que ficheros y directorios pueden
contener mayúsculas y minúsculas:
$ ls -il *.txt
263725 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:13 file1.txt
263855 -rw-rw-r-- 1 sysadmin sysadmin 0 Dec 19 15:12 File1.txt
$ rm file1.txt
$ ls -il *.txt
$ rm ?ile1.txt
ENCONTRAR ARCHIVOS
A menudo puede ser difícil encontrar los archivos que buscamos. Por ello Linux proporciona
varias características para buscar.
COMANDO WHICH
Podemos usar el comando which para encontrar dónde están almacenados programas y
utilidades. Por ejemplo, si tenemos dos versiones de un programa instaladas en el sistema, o si
no estamos seguros de si un comando está construido dentro del shell Linux o proporcionado
como utilidad separada. El formato es:
$ which touch
/usr/bin/touch
La salida del comando which muestra la ruta completa donde el comando está almacenado. Si
tenemos dos versiones de un programa, mostrará la que correrá cuando lo escribamos en la
línea de comandos. Si necesitamos usar una versión diferente, tendríamos que usar la ruta
completa al fichero de programa.
COMANDO LOCATE
El comando locate usa una base de datos que realiza un seguimiento de la situación de
ficheros en el sistema. Cuando usamos el comando locate, busca en la base de datos para
encontrar el fichero solicitado. Este proceso es a menudo más rápido que andar buscando en
el sistema de archivos.
La clave para el comando locate es la información contenida en la base de datos. Solo puede
encontrar ficheros que han sido indizados en la base de datos. La información en la base de
datos es actualizada por el programa llamado updatedb. Linux corre este programa en
background. Hay que tener cierto cuidado al usar el comando locate, pues podemos encontrar
más de lo que buscábamos.
$ locate touch
/snap/core18/1932/bin/touch
/snap/core18/1932/lib/udev/hwdb.d/70-touchpad.hwdb
/snap/core18/1932/lib/udev/rules.d/70-touchpad.rules
/snap/core18/1932/usr/bin/touch
/snap/core18/1944/bin/touch
/snap/core18/1944/lib/udev/hwdb.d/70-touchpad.hwdb
/snap/core18/1944/lib/udev/rules.d/70-touchpad.rules
/snap/core18/1944/usr/bin/touch
/usr/bin/touch
...
El comando locate devuelve cualquier fichero que contenga la palabra touch en su nombre.
Necesitaremos filtrar los resultados para encontrar el fichero que buscamos.
Otro lado negativo del comando locate es que no puede encontrar ningún fichero agregado
recientemente hasta la siguiente ejecución del programa updatedb. Algunos sistemas lo hacen
de forma habitual, cada ciertos minutos, mientras que otros pueden tenerlo programado para
que corra solo una o dos veces al día.
COMANDO WHEREIS
El comando whereis es similar al which en que busca una ocurrencia específica del fichero que
estamos buscando. Sin embargo, solo busca en directorios de ficheros binarios, directorios de
librerías y directorios de documentación, lo que ayuda a agilizar el proceso de búsqueda. Esto
es bueno para encontrar no solo comandos, sino también ficheros de documentación que los
acompañen:
$ whereis touch
COMANDO FIND
El último recurso para encontrar ficheros es el comando find. Hace una búsqueda física a
través del árbol de directorio virtual buscando un fichero específico. Cuanto mayor sea el área
de búsqueda, más tardará en responder. El área de búsqueda se especifica como primer
parámetro del comando find:
/home/sysadmin/myprog
./.zcompdump
./myprog
./.viminfo
El parámetro +5000c le dice al comando find que busque por ficheros (en el directorio actual)
que tengan un tamaño de más de 5000 caracteres.
Option Description
-amin n File was last accessed n minutes ago.
-atime n File was last accessed n days ago.
-ctime n File was last changed n minutes ago.
-inum n Match the file inode number to the number specified.
-name pattern Match the file name to the pattern specified.
-perm pattern Match the file permissions to the pattern specified.
-size n Match the file size to the amount specified.
-user name Match the file owner to the name specified.
ARCHIVADO
Cuantos más datos necesitemos almacenar, más espacio en disco se requiere. Aunque los
tamaños de disco hayan ido aumentando con el tiempo, todavía existen límites. Para ayudar
con esto, podemos usar algunas herramientas de archivado de ficheros para comprimir los
ficheros de datos usados para almacenaje y compartición.
COMPRESIÓN
Linux proporciona algunas herramientas para comprimir ficheros. Esto a veces puede conducir
a confusión al intentar descargar y extraer ficheros comprimidos:
La utilidad compress puede trabajar con ficheros comprimidos en sistemas Unix estándar, pero
no se encuentra a menudo installada por defecto en los sistemas Linux. Si descargamos un
fichero con una extensión .Z, podemos normalmente instalar el paquete compress del
repositorio. La utilidad zip crea directorios comprimidos que pueden ser extraidos en sistemas
Windows, pero no tiene el mejor algoritmo de compresión si estamos manteniendo los
ficheros en un sistema Linux.
La utilidad gzip es la herramienta de compresión más popular en Linux. Es una creación del
GNU Project, como intento de crear una versión libre de la utilidad original compress de Unix.
Este paquete incluye tres ficheros principales:
El comando gzip comprime el fichero especificado. Podemos especificar más de uno o incluso
usar wildcards:
$ gzip my*
En el ejemplo se comprime cada archivo del directorio actual que comience por “my”.
Aunque el comando gzip no solo puede comprimir datos, sino también archivar los datos en un
único fichero, no es la utilidad estándar usada para archivar grandes cantidades de datos en
Unix o Linux. La más popular desde lejos como herramienta de archivado en Unix y Linux es el
comando tar. El comando tar fue originalmente usado para hacer backup de ficheros en un
dispositivo de cinta (tape).
Sin embargo, también puede escribir la salida en un fichero. Es común ver ficheros de código
fuente empaquetados en un fichero tar (a menudo llamado un tarball) para su distribución.
El parámetro function define qué debería hacer el comando tar. dichas funciones pueden ser:
Function Description
Option Description
Aunque la combinación de varias funciones con varias opciones parece complicado para
recordar, en la práctica nos encontraremos usado simplemente un puñado de combinaciones
para hacer las tareas habituales. La siguiente sección echa un vistazo a los escenarios de
archivado más comunes que podríamos encontrar.
ESCENARIOS DE ARCHIVADO
Normalmente hay solo tres cosas básicas que necesitaremos hacer con el comando tar:
Esto ayuda a simplificar las características de función y opción que necesitamos recordar para
el comando tar. Podemos comenzar creando un nuevo fichero de archivado:
Este comando crea un fichero de archivado llamado test.tar que contiene los contenidos de los
directorios test y test2. La opción -v es útil ya que va mostrando los ficheros a medida que van
siendo agregados al tarball.
La función -t lista los contenidos del tarball a la salida estándar por defecto, que es la pantalla.
Los ficheros no son extraidos, solo listados.
Esto extrae los contenidos de fichero test.tar al directorio actual. Si el fichero tar fue creado a
partir de una estructura de directorios, la estructura de directorios entera es recreada
comenzando a partir del directorio actual.