Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCION
En éste capítulo discutiremos los conceptos básicos del sistema de archivos y como esto aplica a sis-
temas GNU/Linux. Hay ciertos puntos clave que debe entender de los sistemas de archivos en general:
• Los sistemas de archivos son estructuras de datos colocados dentro de una partición (un segmento de espa-
cio en un dispositivo que esta asignado para ser usado por un sistema de archivos).
• Diferente sistemas operativos a menudo utilizan sistemas de archivos distintos. Existen diferencias entre
GNU/Linux y otros sistemas operativos (y otros UNiX y sus clones) y sus sistema de archivos, lo que
incluye la ausencia de letras para denotar las unidades de discos y el acceso a dispositivo através de entra-
das del sistema de archivos.
• Sistemas de archivos de redes casi siempre contienen una habilidad inherente de limitar el acceso a desti-
no específicos, como un usuario o grupo de usuarios. GNU/Linux emplea el método de acceso a los sis-
temas de archivos con los estándares usados por todos los UNiX y sus clones.
• Nombres de
Archivos
• Nombres de
Rutas
• Usuarios, Grupos y
Archivos.
Nombres de Archivos
Los nombres de archivos obedecen un gran número de convensiones. Estos pueden contener cualquier
caracter ASCII excepto la barra (/), la cual es usada para separar directorios dentro de una especificación de
nombre de ruta. Normalmente no encontrará muchos archivos con nombres que contienen (:;-). Los nombres
de archivos de GNU/Linux no contienen una extensión, aunque puedes añadir una si así lo desea, no como en
las versiones de DOS y VMS (Virtual Memory System). Usted puede agregar más de una exten- sión a un
nombre, el ejemplo más común que puede encontrar son los archivos .tar.gz.
A diferencia del DOS, el cual requiere de 1 a 8 caracteres para un nombre, como una opción de 1 a 3
caracteres para la extensión, no existe tal restricción de formato en los nombres de archivos de GNU/Linux.
Los nombres de archivos de GNU/Linux, siguen la convención de separar el tipo de archivo del nombre
interpuesto por un punto. Esto le permite a muchas herramientas de GNU/Linux generar un archivo de sali-
da desde un archivo de entrada. El compilador C, por ejemplo, está a la espera de un archivo que termine con
la extensión .c y generá similarmente un archivo de nombre a.out, al menos que se use la opción -o para que
genere un arcivo del nombre que usted elija.
Este sistema es una pura convensión y realmente GNU/Linux no pone restricción alguna en el formato
del nombre del archivo. Estos empiezan con un punto como por ejemplo: .profile
Que son archivos ocultos, normalmente no son desplegado al listar el contenido del directorio y típica-
mente contienen valores personalizado de la aplicaciones.
Aunque cualquier caracter es permitido en el nombre del archivo. En la práctica, existen caracteres que
pueden causar gran dificultad, éstos deben ser evitado siempre y cuando sea posible. Ejemplos son:
Nombre de Ruta
Los archivos son localizados incorporando un esquema de nombre de directorio a través de una ruta
que lleva hasta el nombre del archivo individual. Esto entonces es llamado un nombre completo calificado de
nombre de archivo.
• Una ruta de nombre absoluta describe una ruta del nombre del archivo o directorio empezando desde el
directorio raíz (/).
/usr/bin/tty
• Una ruta de nombre relativa describe una ruta del nombre del archivo o directorio empezando desde direc-
torio actual.
bin/tty
• El directorio actual será el punto de referencia si el nombre del archivo no empieza con una / .
Una ruta de nombre absoluta describe una ruta del nombre del archivo o directorio empezando desde la
raíz (/), del sistema de archivo porque el sistema de archivo es organizado como un árbol con una sola raíz.
Todo archivo o directorio tendrá exactamente un nombre de ruta absoluta y por esto puede ser visto de
una manera de indentificación única de un archivo o directorio dentro de un sistema de archivo.
Una ruta de nombre absoluta empieza con una barra (/). De ahí en adelante, está compuesto por
nombre de directorio separado por barra, por ejemplo /usr/bin/tty, es el nombre de ruta absoluta al archivo
almacena- do a la ruta /usr/bin/ de nombre tty.
Un nombre de ruta relativo describe la ruta de un archivo o directorio empezando desde el directorio
actual. El formato del nombre de una ruta relativa es muy similar al de la ruta absoluta, excepto que el rela-
tivo no empieza con una barra.
El ejemplo nos muestra que cuando el directorio es /usr, entonces la ruta relativa fuese bin/tty usted
puede ver que si el directorio actual fuese /usr/bin el nombre de ruta relativo, fuese solamente tty.
Vínculos a Directorios
Todo directorio en el sistema de archivo de GNU/Linux tiene dos entradas especiales. Aquí mostramos
estas dos entradas:
. El directorio actual
.. El directorio padre(un paso más en la jerarquía)
Estos nombres pueden ser usados en los nombres de ruta, ya sean relativas o absolutas, son usados mayor-
mente en nombre de ruta relativas, ya que te permiten especificar rutas que navegan a través de la
jerarquía de archivos.
Si nuestro directorio actual es /home/usuario, desde ahí la ruta relativa al directorio /home es (..) y la ruta
relativa a /home/usuario/2 es ../usuario/2. Similarmente podemos especificar una ruta relativa a un archivo a
nuestro directorio actual, por ejemplo un archivo en mi directorio actual “carta.txt”, puede ser referenciado
como ./carta.txt. Esto es muy útil cuando el nombre del archivo empieza con el símbolo de menos, porque
los comandos tratan el símbolo de menos como una opción, simplemente anteponemos ./ para eliminar cual-
quier confusión.
El Directorio Home
Por lo general, todo usuario del sistema tiene un directorio home. He aquí donde el usuario
primero ingresa al sistema. El directorio home contiene los directorios de los usuarios y éstos contienen sus
archivos. Aquí el usuario puede crear libremente archivos y directorios. El contenido del directorio HOME
está protegido por defecto de los usuarios que no sean el usuario dueño o el super-usuario con los permisos
de acceso especiales.
Archivos y directorios de configuración son colocados en el directorio home de los usuarios. Aquí se
incluyen archivos de personalización de sección como son .profile o .login, además, los archivos de inicio de
configuración de las aplicaciones como son .Xdefaults y .mailrc.
Comando de Directorios
Algunos comandos simples de directorios que son útiles, son incluidos en la siguiente tabla:
Comando Descripción
cd <directorio> Cambiar directorio
cd Cambiar directorio
home pwd Imprimir
directorio actual ls Listado corto
ls -l Listado Largo
ls [opciones] [archivos... ] Listar archivos específicos del directorio
Use el comando cd <directorio> para cambiar del directorio actual y use el comando pwd para imprimir la
ruta completa del directorio actual. Use el comando cd sin ningún argumento y lo llevará a su directorio
home.
El comando ls lista archivos en un directorio. Este puede ser ejecutado con una lista de nombres de archi-
vos y directorios; si no se pasa el nombre de un archivo como argumento, listará el directorio actual.
Una opción muy útil del comando ls es -l. Esta opción muestra, además del nombre de archivo, muchos
de los atributos del archivo:
$ ls -l
total 101328
-rw-r--r-- 1 ivelis admin 21448 21 Jan 13:19 2787778_2023.jpg
-rw-r--r-- 1 ivelis admin 16816 15 Dec 17:46 2do_lugar.jpg
-rw-r--r-- 1 ivelis admin 16409 15 Dec 17:47 3er_lugar.jpg
-rw-r--r-- 1 ivelis admin 347819 30 Dec 15:06 BreakingWindows-print.png
-rw-r--r-- 1 ivelis admin 884400 9 Dec 10:02 CHARLA.psd
-rw-r--r-- 1 ivelis admin 53885 26 Jan 13:51 CHARLA_AWK.gif
He aquí unas cuantas de las opciones que se le pueden pasar al comando ls:
-l Muestra el listado largo (FULL)
-a Lista todos los archivos ( incluyendo los archivos ocultos que inician con . )
-C/-x Lista en columnas ordenadas/cruzadas
-F Marca el tipo de archivo
-R Listado directorios recursivamente
-t Ordena por tiempo y no por nombre
-d Lista el directorio mismo no su contenido
La opción -a del comando ls listará los archivos ocultos así como los archivos normales, otra opción muy
útil del comando ls es -d, cuando es utilizada en un directorio, esta muestra los atributos del directorio espe-
cificado y no el contenido de éste. En los siguientes ejemplos note la diferencia entre las 2 opciones:
$ ls -l /tmp
$ ls -ld /tmp
$ ls -d mi*
Nos devolverá el nombre de cualquier entrada en el directorio actual que comienza con mi. Sin la opción
-d estuviese listado el contenido de cualquier directorio que empezará con mi.
La opción -R nos devuelve un listado recursivo del directorio. Un listado recursivo significa que no sólo
nos devolverá el directorio, sino que también todos los subdirectorios dentro de éste hasta el fondo de la
estructura del albúm.
Listado de Directorio Detallada
Es muy útil poder obtener la información detallada del listado del directorio. Esto nos provee informa-
ciones muy importantes. Use el comando ls -l para obtener esta salida:
$ ls -l
total 101328
-rw-r--r-- 1 ivelis admin 21448 21 Jan 13:19 2787778_2023.jpg
-rw-r--r-- 1 ivelis admin 16816 15 Dec 17:46 2do_lugar.jpg
-rw-r--r-- 1 ivelis admin 16409 15 Dec 17:47 3er_lugar.jpg
-rw-r--r-- 1 ivelis admin 347819 30 Dec 15:06 BreakingWindows.png
Copiar Archivos
Para copiar un archivo:
Para copiar archivos se usa el comando cp. Si el archivo destino es un directorio, todos los archivos de
origen serán copiados al directorio; de otra forma el archivo singular de origen es copiado al archivo de
destino.
Si el destino ya existe y usted no tiene permisos de escritura, éste no será sobreescrito. Será necesario
una de dos cosas, o borrar el archivo o cambiar su permisos antes de sobreescribirlo.
Todos los sistemas GNU/Linux soportan la opción -r. Si por alguna razón la suya no lo soporta podrá usar los
comandos de archivar (tar y cpio).
• Si se especifica más de un archivo de origen, entonces el destino deberá ser un directorio. Si no lo es, per-
derá data. El comando mv le advertiría sobre esto.
$ mv archivo1 /tmp/ejemplo
$ mv -i archivo2 /tmp/ejemplo mv: replace ‘’/tmp/ejemplo’?
Si el archivo de destino existe, y no es un directorio éste será sobre-escrito por el archivo movido. Para
prevenir sobre escribir por accidente un archivo existente use la opción -i. Se le pediría confirmación para
ejecutar esta acción.
Archivos de destino pueden ser sobre-escrito aunque los permisos de escritura no estén disponible. Esto
es porque sobre escritura he visto como la eliminación de un archivo y la creación de uno nuevo, así pues los
permisos del directorio, no los del archivos, son aplicables. Pero, los permisos del archivo son tomados en
cuenta, y a un usuario se le pediría confirmación interactivamente si el archivo de destino no tiene permisos
de escritura. La sintaxis de los comandos mover y copiar son muy similares.
Eliminar Archivos
Los archivos son eliminados con el uso del comando rm. El comando rm pedirá confirmación antes de
eliminar un archivo protegido de escritura, también pedirá confirmación de todos los archivos a eliminar si se
utiliza la opción -i.
La opción recursiva (-r) es utilizada para eliminar un directorio con todo su contenido incluyendo todos
sus subdirectorios. Sin la opción de recursión rm no eliminará un directorio aunque esté vacío. Use el coman-
do rmdir que se describirá a continuación para eliminar directorios vacíos.
$ rm ejemplo
$ rm -i ej*
$ rm -r /tmp/ejemplo
Manipular Directorios
Para crear nuevos directorio se utilizar el comando mkdir y para eliminarlo el comando rmdir. Ambos
comandos especifican el nombre del directorio, con ruta absolutas o relativas. Para remover un directorio
deberá estar vacío. La opción -r del comando rm borrará directorio y todo su contenido. Al usar esta opción
tenga mucho cuidado.
Los directorios son vistos como archivos por la mayoría de comandos, así pues el comando mv puede ser
usado para renombrar un directorio. Usted puede igualmente mover directorio dentro de otro directorio.
mkdir directorio...
rmdir directorio...
• Para eliminar un directorio y todo su contenido recursivamente use:
rm -r directorio...
cp -r directorio_original directorio_destino
mv directorio_original directorio_destino