Practica-Gestion Sistema Ficheros PDF
Practica-Gestion Sistema Ficheros PDF
Practica-Gestion Sistema Ficheros PDF
Anotaciones:
-Realiza los siguientes ejercicios sobre máquina virtuales. En lugar de realizar capturas de pantalla como
en otras prácticas, para cada apartado indica el comando que has utilizado en un recuadro (tabla).
-En aquellos apartados (si los hubiere) donde se pregunta por el resultado de un comando indica por
escrito la salida que te muestra el sistema.
-En el documento que entregues el enunciado de los ejercicios debe ir en un color y las respuestas en otro
color.
Actividades:
1. Abre una terminal (un “bash”) en Ubuntu y comprueba en qué directorio te encuentras (pwd).
3. Indica el propietario, permisos, y el número de directorios que contiene la carpeta creada (“ls
-l”).
5. Crea en el directorio practica tres subdirectorios llamados dir.uno, dir2 y dir_3 (puedes crear
los tres directorios en un solo mandato, comprueba la sintaxis de mkdir en su manual) ¿Has
tenido algún problema por usar los caracteres “.” o “_” en los nombres de carpetas?
6. Borra el directorio dir_3 (usa el mandato rmdir). Comprueba con ls que la operación se ha
completado con éxito. rmdir nos permite borrar directorios vacíos (compruébalo en el manual
de rmdir). Por medio de “rm –r” podemos borrar un directorio y sus contenidos de forma
recursiva (compruébalo en el manual de rm).
7. Desplázate a dir.uno. Vamos a crear ahora un fichero de texto por medio del editor nano.
Ejecuta nano en la terminal. Ahora debes escribir un fichero de texto con los siguientes datos:
Nombre Apellidos Fecha Dedicación
Guárdalo con el nombre datos_personales. Comprueba por medio de “ls” que está bien creado.
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
8. Desplázate al directorio dir2 y crea dos ficheros de texto por medio de nano, de nombre
prueba1 y prueba2. El contenido de los mismos queda a tu elección (pero no los dejes vacíos;
conviene que sean distintos).
9. Sin salir de la carpeta dir2, copia el fichero datos_personales (que está en dir.uno) en otro
llamado datos_personales.copia en dir2. El mandato que permite copiar ficheros (o directorios)
es cp. Recuerda que para “subir un nivel” en el árbol de directorios puedes utilizar la
abreviatura “..”. Comprueba que la operación se ha completado con éxito por medio de ls.
10. En la misma carpeta dir2 vamos a hacer una copia (oculta) del fichero
datos_personales.copia en un fichero .datos_personales. Comprueba que el archivo está en la
carpeta por medio de ls -a. Comprueba por medio de ls que el archivo no es visible. Los
archivos ocultos en los sistemas Linux se caracterizan únicamente por que su nombre empieza
por “.”.
11. El mandato cp también nos permite copiar directorios (con sus contenidos). Generalmente,
si queremos copiar directorios queremos que se copien también todos sus ficheros y
subdirectorios. Para ello debemos usar la opción “-r” (copia recursiva). Ejecuta el siguiente
mandato
sudo cp –r /var/log .
¿A qué directorio has copiado la carpeta “log”? Ejecuta el mandato “ls – l”. ¿Qué directorio
abreviamos por “.”? Con la orden anterior has realizado una copia completa de la carpeta “log”.
Dirígete a la carpeta “log” del directorio “dir2”. Ejecuta el mandato “ls - l”. Comprueba si los
ficheros disponen de permiso de ejecución (“x”).
¿Qué sucederá si eliminamos alguno de los ficheros que se encuentran en la nueva carpeta
creada “log”? ¿Desaparecerá también de la carpeta del sistema “/var/log”?
Elimina uno cualquiera de los ficheros por medio del mandato rm. Apunta su nombre.
Comprueba con ls que la operación se ha completado con éxito. Lista ahora el contenido de la
carpeta “/var/log” (no hace falta que te desplaces hasta ella, “ls –l /var/log” lo hará
directamente). ¿Aparece el fichero que has eliminado en tu copia de la carpeta “log”?
Una vez hemos copiado los ficheros, cada uno tiene su propia entidad, y eliminar o modificar
uno de ellos (el original o la copia) no tiene consecuencias sobre el otro. Los dos ficheros son
entidades distintas.
12. Además de copiar ficheros y directorios, también podemos mover ficheros entre directorios.
Vamos a mover el fichero “datos_personales” de la carpeta “dir.uno” a “dir2”. Para ello puedes
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
13. Intenta mover el fichero que has borrado antes en tu copia de la carpeta “log” en dir2 desde
la carpeta /var/log hasta tu copia de la carpeta log.
¿Qué respuesta has obtenido? ¿Cómo puedes evitar la limitación encontrada? Compruébalo.
Apunta en tu documento la diferencia entre “cp” y “mv”. Por medio de cp hemos creado una
copia de un fichero existente (y el sistema no nos advirtió de ningún error), mientras que por
medio de “mv” hemos cambiado el fichero de lugar.
14. El mandato mv también nos permite mover carpetas. Mueve el directorio dir.uno a una
carpeta prueba que deberás crear previamente en tu Home Comprueba que la operación se ha
realizado correctamente.
15. Por medio de mv también podemos renombrar carpetas y ficheros. Renombra el directorio
dir.uno como mis_textos. Comprueba el resultado de la operación (ha debido desaparecer
dir.uno y aparecer una nueva carpeta mis_textos).
16. Pasamos ahora a ver cómo se pueden crear enlaces a ficheros. Sitúate en tu directorio
home y crea un fichero llamado fichero1 con nano. Introduce algun texto. A continuación entra
en la subcarpeta mis_textos y crea ahí un enlace debil a fichero1:
$ln –s ../fichero1 enl_debil_fichero1
Comprueba ahora con “ls -l” las características del enlace creado. ¿Qué tipo de elemento es?
(Recuerda que eso lo podemos saber por la primera letra de su formato largo: “d” era válido
para directorio, “-” para fichero, “l” para enlaces). ¿Qué información adicional contiene la línea
sobre el enlace? ¿Puedes saber a qué directorio se refiere?
17. ¿Para qué sirve el enlace débil? Trata de abrir ahora el fichero creado enl_debil_fichero
(puedes usar nano).
A diferencia de la copia que realizamos antes, el enlace débil sólo es una redirección al fichero
original; si modificamos el fichero original, el enlace débil, que accederá a ese mismo fichero,
también “verá” las modificaciones. Si eliminamos el fichero original, el enlace dejará de ser útil
(apuntará a un fichero que no existe). Realiza la prueba de modificar el fichero y abrir el enlace.
18. Veamos ahora los enlaces fuertes. En el mismo directorio, ejecuta el siguiente mandato
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
(observa la diferencia con el mandato anterior; utiliza el mismo nombre_del_fichero que antes):
$ln ../fichero1 enl_fuerte_fichero1
Visualiza el contenido del enlace fuerte: cat enl_fuerte_fichero1
19. Aunque pueda parecer lo contrario por su comportamiento, existen diferencias importantes
entre enl_debil_fichero1 y enl_fuerte_fichero1. Ejecuta el mandato “ls -l”. Observa las
diferencias entre el enlace débil y el fuerte. ¿Qué tamaño tiene cada uno de los ficheros?
¿Existen diferencias entre los permisos? ¿Aparece en enl_fuerte_fichero1 la referencia a algún
otro directorio?
20. Ejecuta ahora el mandato “ls -li”. Verás que en la columna izquierda de la respuesta
obtenida ha aparecido un número entero. Apunta el número de los archivos
“enl_fuerte_fichero1” y “enl_debil_fichero1”. Este número es lo que se conoce en los sistemas
de ficheros propios de Unix como “inodo”. Puedes encontrar información sobre los mismos en
http://es.wikipedia.org/wiki/Inodo. Apunta las principales características de los inodos.
Comprueba el inodo correspondiente al fichero de la carpeta home que has enlazado.
¿Coincide con alguno de los inodos de los enlaces simbólico o fuerte? ¿Coincide su tamaño
con el de alguno de los enlaces de que disponías?
21. Ahora, en tu carpeta home, borra el fichero al que has creado los enlaces (rm fichero1).
Vuelve a la subcarpeta mis_textos. Vuelve a ejecutar “ls - l”. Trata de abrir enl_fuerte_fichero1 y
apunta el resultado. Trata de ejecutar enl_debil_fichero1 y apunta el resultado.
El enlace fuerte apunta a la dirección de memoria en que se encuentra el fichero original,
mientras que el enlace débil apuntaba al fichero original. De ese modo, cuando borramos el
fichero original, el enlace fuerte sigue funcionando, mientras que el enlace débil deja de
hacerlo.
22. A partir de la información que has leído en el enlace anterior y de tus propias conclusiones,
trata de explicar la diferencia entre los enlaces simbólicos, enlaces fuertes, copias de ficheros
(cp) y desplazamientos de los mismos (mv). Debe quedar claro que cada una de las 4
posibilidades anteriores es distinta, y en qué sentido lo son.
23. También podemos crear enlaces fuertes o simbólicos entre carpetas. Vamos a crear un
enlace simbólico al directorio /var/log:
$ln –s /var/log enlace-logs
Muévete a la carpeta “enlace-logs”. Comprueba su contenido con “ls -lia”. Comprueba ahora los
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
24. Por último, vamos a ver algunos mandatos de empaquetado y desempaquetado propios de
Linux. Un programa muy utilizado para empaquetar archivos y carpetas es tar. Puedes
encontrar información sobre el mismo en http://es.wikipedia.org/wiki/Tar . En realidad tar, por
defecto, no comprime información, simplemente la empaqueta o junta en un solo fichero.
Ejecuta en la shell el mandato “man tar”.
Vamos a empaquetar ahora los contenidos de la carpeta practica. Dirígete a tu directorio
$HOME. Ejecuta el mandato:
$tar –cvf practica.tar practica
Apunta lo que hace cada una de las opciones “c”, “v”, “f”. Ejecuta ahora “ls -l” y comprueba el
nuevo archivo que ha aparecido. Los ficheros producidos por tar tienen algunas características
importantes, como que mantienen los permisos de los archivos originales, preservan los
enlaces simbólicos o fuertes, mantienen el árbol de directorios... Por eso constituye una
herramienta ideal para trasladar información entre máquinas Linux.
25. Para poder descomprimir un archivo tar hay que realizar una acción parecida. Borramos en
primer lugar la carpeta practica. Para ello debes ejecutar “rm –r practica”; responde
afirmativamente a todas las preguntas que se te planteen. Comprueba que has obtenido el
resultado deseado (la carpeta debe haber desaparecido). Ahora vamos a desempaquetar el
archivo practica.tar:
$tar –xvf practica.tar
Apunta el significado de la opción “x”. Comprueba el resultado por medio de “ls -l”.
26. Además de utilidades para empaquetar, pero que no reducen ni disminuyen el tamaño de
los archivos originales, el intérprete de mandatos también nos presta ciertas aplicaciones que
permiten comprimir carpetas o ficheros. Dos de las más conocidas son bzip2 y gzip. bzip2
consigue mayores niveles de compresión, pero también requiere un mayor uso de CPU. El uso
de ambas es similar. Apunta el tamaño del fichero practica.tar (ejecuta “ls -l” y elige la columna
correspondiente).
Ejecuta ahora el mandato:
$gzip practica.tar
Comprueba el tamaño del archivo obtenido (“ls –l”).
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
La opción “9” le indica al programa que trate de conseguir el máximo nivel de compresión.
Comprueba su tamaño. Descomprímelo.
El funcionamiento de bzip2 es similar:
$bzip2 practica.tar
Comprueba su tamaño.
$bunzip2 practica.tar.bz2
El uso combinado de tar y bzip2 o gzip también es posible. En general es bastante común que
encuentres ficheros para programas o aplicaciones que tengan extensión “.tar.gz” o “.tar.bz2”, y
que deberías ser capaz de descomprimir con los mandatos anteriores. Puedes encontrar las
opciones combinadas correspondientes en http://es.wikipedia.org/wiki/Tar.
27. Vuelca todos los mandatos de la sesión por medio de history a un fichero
“mandatos_practica”. History > mandatos_practica
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
35. Borra el fichero prueba2. El mandato para borrar ficheros en cmd es “del”.
36. Sin salir de la carpeta dir2, copia el fichero datospersonales (que está en dir.uno) en otro
llamado datospersonales.copia en dir2. El mandato que permite copiar ficheros (o directorios)
es copy. Recuerda que para “subir un nivel” en el árbol de directorios puedes utilizar la
abreviatura “..”, y que en Windows la barra de las rutas es “\”. Comprueba que la operación se
ha completado con éxito por medio de dir.
El equivalente al mandato “cp –r” en GNU lo podemos encontrar en el mandato xcopy de
Windows, que nos permite copiar directorios (con sus contenidos).
37. Además de copiar ficheros y directorios, también podemos mover ficheros entre directorios.
Vamos a mover el fichero “datospersonales” de la carpeta “dir.uno” a “dir2”. Para ello puedes
hacer uso del mandato “move”. La sintaxis es “move fichero destino” (recuerda que puedes
usar “..” para subir en el árbol de directorios).
38. El mandato move también nos permite mover carpetas. Mueve el directorio dir.uno al
escritorio. Comprueba que la operación se ha completado con éxito.
39. Por medio de rename podemos renombrar carpetas y ficheros. Renombra el directorio
dir.uno como mis_textos. Comprueba el resultado de la operación (ha debido desaparecer
dir.uno y aparecer una nueva carpeta mis_textos).
40. En Windows también existe la posibilidad de crear enlaces a ficheros o carpetas. En
realidad lo que se hace en Windows es equivalente a los “enlaces débiles” de Linux; se crean
Implantación de Sistemas Operativos Unidad 4:
Sistemas de Ficheros Unidad Práctica:
Gestión del sistema de ficheros mediante comandos
ficheros que apuntan a un fichero original. Si por algún motivo el fichero original desaparece,
todos los enlaces quedan inutilizados. Puedes encontrar la sintaxis y algunos ejemplos en
http://technet.microsoft.com/en-us/library/cc753194(WS.10).aspx.
7-7