Operaciones básicas con archivos

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido al laboratorio de Operaciones Básicas con Archivos en Linux! En Linux, casi todo se trata como un archivo, lo que hace que las operaciones con archivos sean fundamentales para utilizar el sistema. Este laboratorio te guiará a través de los comandos más comunes para gestionar archivos y directorios, ayudándote a ser más eficiente en la navegación y organización de tu sistema Linux.

Entendiendo tu entorno de trabajo

En Linux, cada usuario suele tener un "directorio personal" (home directory), representado por ~. Sin embargo, en este entorno de laboratorio, comenzaremos en el directorio /home/labex/project, que es nuestro directorio de trabajo predeterminado.

Primero, abre una terminal en el escritorio O cambia a la pestaña de terminal en el entorno del laboratorio.

Captura de pantalla de la interfaz de la terminal

Comencemos por entender nuestra ubicación actual:

pwd

pwd significa "print working directory" (imprimir directorio de trabajo). Muestra tu ubicación actual en el sistema de archivos. Este comando es crucial para orientarte en la estructura de archivos de Linux. Deberías ver /home/labex/project como resultado.

Ahora, exploremos la relación entre el directorio actual y el directorio personal:

echo ~

Nota: Si no puedes escribir el símbolo ~ en la terminal del escritorio debido a diferencias en la distribución del teclado, puedes intentar cambiar a la pestaña de Terminal independiente en la esquina superior izquierda de la interfaz de la máquina virtual.

Este comando mostrará la ruta a tu directorio personal, que debería ser /home/labex.

Para ver el contenido de tu directorio actual, utiliza:

ls

Esto listará los archivos y directorios en tu directorio de trabajo actual (/home/labex/project).

Comprobemos también el contenido de tu directorio personal:

ls ~

Este comando lista el contenido de tu directorio personal, el cual puede ser diferente de tu directorio de trabajo actual.

Entender la distinción entre tu directorio de trabajo actual y tu directorio personal es importante para navegar eficazmente por el sistema de archivos de Linux.

Linux utiliza lo que llamamos un "sistema de archivos jerárquico". Imagínalo como un gran árbol con ramas. El tronco principal se llama "directorio raíz" (root directory), representado por una sola barra diagonal /. Todos los demás directorios y archivos se ramifican desde esta raíz.

Exploremos cómo movernos en esta estructura similar a un árbol:

  1. Comprueba tu ubicación actual:
pwd

Esto debería mostrar /home/labex/project. Si no es así, es posible que estés en un directorio diferente. Usa cd /home/labex/project para volver al punto de partida.

  1. Visualiza el contenido de tu directorio actual:
ls

Esto lista todos los archivos y carpetas en tu ubicación actual. /home/labex/project está vacío, por lo que no verás nada.

  1. Sube un nivel al directorio padre:
cd ..

.. significa "el directorio superior". Después de este comando, ejecuta pwd de nuevo. Ahora deberías estar en /home/labex.

  1. Regresa a tu directorio de proyecto:
cd project

Esto te lleva de vuelta a /home/labex/project.

  1. Ve a tu directorio personal:
cd ~

~ es un atajo para tu directorio personal. Ejecuta pwd para confirmar que estás en /home/labex.

  1. Regresa al directorio del proyecto usando una ruta absoluta:
cd /home/labex/project

Esto se llama "ruta absoluta" porque comienza desde la raíz (/) y proporciona la ubicación completa.

Creando archivos y listando el contenido de directorios

Ahora que sabemos cómo navegar, vamos a crear algunos archivos y explorar cómo listar el contenido de los directorios.

Primero, asegúrate de estar en el directorio /home/labex/project:

cd /home/labex/project
  1. Vamos a crear algunos archivos:
touch file1.txt

El comando touch se utiliza para crear un archivo vacío. Si el archivo ya existe, actualiza la marca de tiempo del archivo sin cambiar su contenido. Es una forma sencilla de crear archivos nuevos y vacíos.

echo "Hello, Linux" > file2.txt

Este comando hace dos cosas:

  • echo es un comando que imprime texto.
  • El símbolo > redirige la salida de echo hacia un archivo llamado file2.txt. Si el archivo no existe, se crea. Si ya existe, su contenido es reemplazado.
echo "Hidden file" > .hiddenfile

Esto crea un archivo oculto. En Linux, cualquier nombre de archivo o directorio que comience con un punto (.) se considera oculto.

  1. Ahora, vamos a crear un directorio:
mkdir testdir

El comando mkdir (abreviatura de "make directory") crea un nuevo directorio llamado testdir.

  1. Listado básico:
ls

Salida del listado de contenido del directorio

Esto muestra el contenido de tu directorio actual. Deberías ver file1.txt, file2.txt y testdir.

  1. Listado detallado:
ls -l

La opción -l (es una L minúscula, no el número 1) proporciona un formato de listado "largo". Verás detalles adicionales como permisos de archivo, propietario, tamaño y fecha de modificación.

  1. Mostrar archivos ocultos:
ls -a

Esto mostrará todos los archivos, incluido el .hiddenfile oculto que creamos.

  1. Combinar opciones:
ls -la

Esto combina el formato largo (-l) con la visualización de todos los archivos (-a).

  1. Listar el contenido de un directorio específico:
ls -l testdir

Esto lista el contenido del directorio testdir (que debería estar vacío en este punto).

Los comandos de listado en este paso son para práctica práctica y confirmación visual. Tu progreso se evalúa comprobando que los archivos y el directorio requeridos se hayan creado correctamente.

Copiando archivos y directorios

Ahora que tenemos algunos archivos con los que trabajar, aprendamos a copiarlos:

  1. Copiar un archivo:
cp file1.txt file1_copy.txt

Esto crea una copia de file1.txt llamada file1_copy.txt en el directorio actual.

Verifiquemos la copia:

ls
  1. Copiar un archivo a otro directorio:
cp file2.txt testdir/

Esto copia file2.txt dentro del directorio testdir.

  1. Copiar un directorio:
cp -r testdir testdir_copy

La opción -r significa "recursivo". Es necesaria al copiar directorios para asegurar que todo su contenido sea copiado.

  1. Verifiquemos nuestras copias:
ls
ls testdir
ls testdir_copy

Terminal mostrando archivos copiados

Moviendo y renombrando archivos y directorios

El comando mv se utiliza tanto para mover como para renombrar en Linux:

  1. Renombrar un archivo:
mv file1.txt newname.txt

Esto renombra file1.txt a newname.txt.

  1. Mover un archivo a un directorio:
mv newname.txt testdir/

Esto mueve newname.txt dentro del directorio testdir.

  1. Renombrar un directorio:
mv testdir_copy new_testdir

Esto renombra testdir_copy a new_testdir.

  1. Mover y renombrar en un solo comando:
mv testdir/newname.txt ./original_file1.txt

Esto mueve newname.txt fuera de testdir y lo renombra a original_file1.txt en el directorio actual.

  1. Verifiquemos nuestros cambios:
ls
ls testdir

Visualización de resultados de ejecución de comandos

Eliminando archivos y directorios

Eliminar archivos y directorios es una operación poderosa. A diferencia de las interfaces gráficas, la línea de comandos a menudo no tiene una "Papelera de reciclaje". Las eliminaciones realizadas con rm suelen ser permanentes. ¡Siempre verifica dos veces tus comandos antes de ejecutarlos!

Limpiemos los archivos y directorios que creamos. Asegúrate de estar en el directorio /home/labex/project.

pwd
ls -a

Deberías ver archivos como original_file1.txt, .hiddenfile, file2.txt y directorios como testdir, new_testdir.

-rw-rw-r-- 1 labex labex   12 May  3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex    0 May  3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex   13 May  3 08:44 file2.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 new_testdir
-rw-rw-r-- 1 labex labex    0 May  3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 testdir
  1. Eliminar un solo archivo:

    rm original_file1.txt
    

    El comando rm (abreviatura de "remove") elimina archivos. Comprobemos:

    ls
    

    original_file1.txt debería haber desaparecido.

  2. Eliminar de forma interactiva (más seguro):

    Intentemos eliminar file2.txt, pero esta vez usando la bandera interactiva -i:

    rm -i file2.txt
    

    La opción -i te pide confirmación antes de eliminar cada archivo. Escribe y (de yes) y presiona Enter para confirmar la eliminación. Si escribes n o cualquier otra cosa, el archivo no se eliminará.

    ls
    

    Si confirmaste, file2.txt habrá desaparecido.

  3. Eliminar un directorio vacío:

    ¿Recuerdas el new_testdir que creamos al renombrar testdir_copy? Comprobemos si está vacío:

    ls new_testdir
    

    Si está vacío (no muestra archivos), podemos eliminarlo usando rmdir:

    rmdir new_testdir
    

    rmdir (remove directory) solo funciona en directorios vacíos.

    ls
    

    new_testdir no se puede eliminar porque no está vacío.

  4. Intentar eliminar un directorio no vacío:

    Ahora, intentemos rmdir en testdir, que todavía contiene file2.txt (copiado en el Paso 4):

    ls testdir
    rmdir testdir
    

    Probablemente verás un mensaje de error como rmdir: failed to remove 'testdir': Directory not empty. Esto es esperado porque rmdir no puede eliminar directorios que contienen archivos u otros directorios.

  5. Eliminar un directorio y su contenido (recursivamente):

    Para eliminar un directorio que no está vacío, necesitamos usar rm con la opción -r (recursiva):

    rm -r testdir
    

    Este comando elimina el directorio testdir y todo lo que hay dentro. Usa este comando con precaución.

    ls
    

    testdir debería haber desaparecido ahora.

  6. Eliminación forzada (usar con extrema precaución):

    A veces, es posible que desees eliminar archivos sin que se te solicite confirmación, incluso si están protegidos contra escritura (aunque no tenemos ninguno aquí). La opción -f (force) hace esto.

    Eliminemos nuestro archivo oculto:

    rm .hiddenfile
    ls -a
    

    Ahora, combinemos -r y -f. El comando rm -rf es extremadamente poderoso y potencialmente peligroso. Elimina directorios de forma recursiva (-r) y fuerza la eliminación sin preguntar (-f).

    !!! ZONA DE PELIGRO !!! Asegúrate ABSOLUTAMENTE de saber qué estás eliminando antes de ejecutar rm -rf. Un pequeño error tipográfico podría eliminar archivos críticos del sistema o tus datos personales. No hay forma de deshacerlo. Por ejemplo, rm -rf / podría intentar eliminar todo tu sistema (si tienes permisos). Siempre verifica dos veces la ruta.

    Creemos un directorio y un archivo temporales para demostrarlo (de forma segura):

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Nota: Es posible que notes que usamos -R (mayúscula) con ls en lugar de -r (minúscula) como hicimos con cp y rm. Esto no es solo una diferencia de mayúsculas: ¡son opciones completamente diferentes! Para ls, -R significa "listado recursivo" (listar subdirectorios), mientras que -r significa "orden inverso". Para cp y rm, la opción recursiva es -r (minúscula). Siempre consulta el manual (man command) para entender las opciones específicas de cada comando.

    Ahora, eliminémoslo a la fuerza:

    rm -rf temp_dir
    

    Verifica la eliminación:

    ls
    

    temp_dir debería haber desaparecido.

Recuerda: En la línea de comandos de Linux, los archivos eliminados generalmente desaparecen para siempre. ¡Usa rm con cuidado!

Resumen

¡Felicidades! Has aprendido las operaciones básicas con archivos en Linux:

  • Navegar por el sistema de archivos con cd y pwd
  • Crear archivos y directorios con touch y mkdir
  • Listar contenidos con ls y sus opciones
  • Copiar archivos y directorios con cp
  • Mover y renombrar con mv
  • Eliminar archivos y directorios con rm y rmdir

Estos comandos forman la base de la gestión de archivos en Linux. Con la práctica, te volverás competente en la gestión de tus archivos y directorios desde la línea de comandos.

Recuerda usar estos comandos con cuidado, especialmente rm, ya que elimina permanentemente archivos y directorios sin posibilidad de recuperación.

A medida que continúes tu viaje por Linux, explora las páginas de manual (por ejemplo, man ls) para aprender más sobre cada comando y sus opciones. ¡Feliz exploración!