Lección 2: Archivos y el sistema de archivos

Archivos

Un archivo en un sistema informático moderno es un bloque de información con nombre accesible a un programa informático y almacenado en algún tipo de memoria no volátil.

Los archivos pueden contener tanto programas como datos, y los archivos de datos pueden almacenar texto, imágenes, sonido, video y muchos otros tipos de datos. Los dos tipos más comunes de archivos de datos para los diseñadores web son los archivos de texto y los archivos de imagen. Las páginas web están escritas en archivos de texto.

Sistemas de archivos y directorios

Los sistemas operativos organizan archivos mediante el uso de un sistema de archivos. Los sistemas de archivos proporcionan herramientas para la gestión de archivos y directorios. Un directorio (o carpeta) es un tipo especial de archivo que puede contener otros archivos y directorios dentro de él. Los directorios se utilizan para organizar archivos y facilitar su búsqueda.

Dado que un directorio puede tener directorios dentro de él, y esos directorios pueden tener directorios dentro de ellos, y así sucesivamente, terminamos con una estructura de arbol para el sistema de archivos.

Tree view of webappdev

La captura de pantalla anterior muestra la visualización del programa de árbol de un directorio llamado webappdev que tiene cuatro subdirectorios llamados css, html, unix, and vim. Cada uno de estos subdirectorios tiene dos subdirectorios más llamados ejemplos y notas. El directorio de notas dentro del directorio unix contiene dos archivos, lección1.txt y lección2.txt. La extensión de nombre de archivo .txt sugiere que se trata de archivos de texto.

Un directorio que contiene un archivo o directorio se denomina directorio principal de ese archivo o subdirectorio. En el ejemplo anterior, el directorio de notas es el directorio principal de los archivos de texto lección1.txt y lección2.txt, y el directorio webappdev es el principal de los subdirectorios css, html, unix, y vim.

Ruta

Un sistema informático moderno tiene cientos de miles de archivos y directorios. Al utilizar la estructura de árbol del sistema de archivos, es posible organizar y administrar estos cientos de miles de archivos. Cada archivo se encuentra en una serie de directorios anidados. La secuencia de estos directorios anidados que terminan con el nombre del archivo se denomina ruta a ese archivo.

Ruta absoluta

En la parte superior del sistema de archivos de Unix se encuentra lo que se llama el directorio raíz, que es siempre solo / en Unix. La ruta absoluta a cualquier archivo en el sistema de archivos es la secuencia de directorios, comenzando desde la raíz y terminando con el archivo.

La forma más sencilla de mostrar cómo funciona esto es con un ejemplo. El siguiente diagrama muestra parte de un árbol del sistema de archivos Unix.

Unix directory tree

La ruta absoluta al archivo Leccion1.txt es:

/home/jelkner/webappdev/unix/notes/lesson1.txt

Rutas relativas y el directorio actual de trabajo

La ruta absoluta a un archivo en el sistema de archivos puede ser larga y, normalmente, el usuario está interesado en archivos que se encuentran en una pequeña parte del sistema, cerca del usuario. Por cerca del usuario queremos decir cerca en el árbol del directorio de trabajo actual del usuario. Puede pensar en el directorio actual de trabajo como su ubicación actual mientras se desplaza por el árbol del sistema de archivos.

Una vez más, es mucho más fácil mostrarte que decirte.

Inside webappdev

La captura de pantalla anterior muestra el programa pwd mostrando el directorio de trabajo actual como /home/jelkner/webappdev. A continuación, muestra ls en ejecución, con los directorios css, html, unix y vim como salida. Por último, tree se ejecuta de nuevo, esta vez sin argumentos.

La ruta relativa desde el directorio de trabajo actual al archivo lesson1.txt es:

unix/notes/lesson1.txt

Tenga en cuenta que las rutas relativas no comienzan con una barra (/).

Nombres cortos para los directorios actual y principal: . y ..

Al expresar rutas relativas, necesitamos una forma de indicar tanto nuestro directorio de trabajo actual como su directorio padre. Unix proporciona una forma muy breve de hacer esto. Se hace referencia al directorio de trabajo actual con un solo punto (.) Y al directorio principal se hace referencia con dos puntos (..). Tenga en cuenta que, dado que cada archivo o directorio puede tener un solo padre, utilizar .. para hacer referencia a este directorio padre no es ambiguo.

Nuestro primeros comandos: ls, pwd, cd, mkdir, y rmdir

Los siguientes comandos de Unix se utilizan para enumerar el contenido del directorio de trabajo actual, imprimir el directorio de trabajo actual en sí, moverse de un directorio a otro, crear un nuevo directorio y eliminar un directorio existente.

ls
Enumera el contenido del directorio de trabajo actual. ls tiene varias opciones útiles en la línea de comandos que comienzan con un carácter - (guión) seguido de una o más letras.
ls -a
Muestra archivos y directorios ocultos (archivos y directorios cuyos nombres comienzan con . (Punto)).
ls -l
Muestra los detalles del archivo con un formato largo.
ls -t
Ordene la lista por fecha, primero el archivo más reciente.
ls -S
Ordene la lista por tamaño, primero el archivo mas grande.
Estas opciones se pueden combinar, de modo quels -la, ls -lt, ls -lS, y ls -lat son todas formas utiles de combinación.
pwd
Imprimir directorio de trabajo (actual).
cd [nombre_del_directorio]
Cambiar directorio de trabajo a nombre_del_directorio.
mkdir [nombre_del_directorio]
Crear directorio nombre_del_directorio.
rmdir [nombre_del_directorio]
Eliminar nombre_del_directorio si está vacío. Si no está vacío, se devolverá una advertencia y el directorio no se eliminará.

En el árbol de directorios webappdev que se muestra arriba con el directorio webappdev ubicado en el directorio de inicio del usuario (/home/[username]/), al escribir el comando: cd webappdev/unix en el símbolo del sistema cambiaría el directorio de trabajo actual a /home/[username]/webappdev/unix.

Escribir el comando ls revelaría los dos subdirectorios, ejemplos y notas. Escribir pwd mostrará la ruta completa al directorio de trabajo actual:

/home/[mombre_de_usuario]/webappdev/unix

Para subir un nivel en el árbol de directorios, escribiendo cd .. cambiará el directorio de trabajo actual a webappdev. Si escribe ls aquí, se mostrarán los cuatro subdirectorios css, html, unix, y vim.

Ejercicios:

Los siguientes ejercicios le permitirán practicar con cada uno de estos nuevos comandos. Tenga en cuenta que los archivos que terminan en .txt estos ejercicios son archivos de texto, no directorios. Utilice el siguiente comando para crear estos archivos:

    $ touch [nombre_archivo]

Aprenderemos una mejor manera de crear y editar archivos de texto en la próxima lección.

  1. ¿Qué es información? ¿Crees que este es un término fácil o difícil de definir? ¿Por qué?
  2. Lea el artículo de wikipedia sobre programas de computadora. En sus propias palabras, resuma qué es un programa de computadora.
  3. Según Wikipedia, ¿qué es la memoria no volátil? Dé ejemplos de memoria (o almacenamiento) no volátil en los sistemas informáticos que utiliza. ¿Qué crees que es la memoria volátil?
  4. Practique sus nuevos comandos de Unix siguiendo las instrucciones paso a paso de esta hoja de ejercicios.
  5. Obtenga más práctica con los comandos de Unix siguiendo las instrucciones paso a paso de esta hoja de ejercicios.
  6. Utilice sus nuevos comandos de Unix para crear el directorio que se muestra en esta hoja de ejercicios.
  7. Utilice sus nuevos comandos de Unix para crear el directorio que se muestra en esta hoja de ejercicios.