Operaciones básicas con archivos

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido al laboratorio sobre operaciones básicas con archivos en Linux! En Linux, prácticamente todo se trata como un archivo, por lo que las operaciones con archivos son fundamentales para utilizar el sistema. En este laboratorio aprenderá a usar los comandos más habituales para administrar archivos y directorios, y mejorará su capacidad para desplazarse por el sistema Linux y organizarlo.

Comprender el entorno de trabajo

En Linux, cada usuario suele tener un «directorio personal», representado por ~. Sin embargo, en este entorno de laboratorio comenzará en el directorio /home/labex/project, que es nuestro directorio de trabajo predeterminado.

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

Captura de la interfaz de la terminal

Comience por comprobar su ubicación actual:

pwd

pwd significa «print working directory» (mostrar el directorio de trabajo). Muestra su ubicación actual en el sistema de archivos. Este comando es esencial para orientarse en la estructura de archivos de Linux. Como resultado, debería ver /home/labex/project.

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

echo ~

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

Este comando muestra la ruta de su directorio personal, que debería ser /home/labex.

Para ver el contenido del directorio actual, use:

ls

Este comando muestra los archivos y directorios del directorio de trabajo actual (/home/labex/project).

Compruebe también el contenido de su directorio personal:

ls ~

Este comando muestra el contenido del directorio personal, que puede ser diferente del directorio de trabajo actual.

Comprender la diferencia entre el directorio de trabajo actual y el directorio personal es importante para desplazarse eficazmente por el sistema de archivos de Linux.

Desplazarse por el sistema de archivos

Linux utiliza lo que se denomina un «sistema de archivos jerárquico». Puede imaginarlo como un gran árbol con ramas. El tronco principal se denomina «directorio raíz» y se representa con una sola barra diagonal /. El resto de directorios y archivos parten de esta raíz.

Explore cómo desplazarse por esta estructura en forma de árbol:

  1. Compruebe su ubicación actual:
pwd

Debería mostrar /home/labex/project. Si no es así, quizá se encuentre en otro directorio. Ejecute cd /home/labex/project para volver al punto de inicio.

  1. Vea el contenido del directorio actual:
ls

Este comando muestra todos los archivos y carpetas de la ubicación actual. /home/labex/project está vacío, por lo que no debería ver ningún elemento.

  1. Suba un nivel hasta el directorio padre:
cd ..

.. significa «el directorio superior». Después de ejecutar este comando, vuelva a ejecutar pwd. Ahora debería encontrarse en /home/labex.

  1. Regrese al directorio del proyecto:
cd project

Esto le lleva de nuevo a /home/labex/project.

  1. Vaya a su directorio personal:
cd ~

~ es un atajo para indicar el directorio personal. Ejecute pwd para confirmar que se encuentra en /home/labex.

  1. Regrese al directorio del proyecto mediante una ruta absoluta:
cd /home/labex/project

Esto se denomina «ruta absoluta» porque comienza en la raíz (/) e indica la ubicación completa.

Crear archivos y listar el contenido de un directorio

Ahora que sabe cómo desplazarse, cree algunos archivos y explore cómo listar el contenido de un directorio.

Primero, asegúrese de encontrarse en el directorio /home/labex/project:

cd /home/labex/project
  1. Cree algunos archivos:
touch file1.txt

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

echo "Hello, Linux" > file2.txt

Este comando realiza dos acciones:

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

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

  1. Ahora, cree un directorio:
mkdir testdir

El comando mkdir (abreviatura de «make directory», crear directorio) crea un directorio nuevo llamado testdir.

  1. Listado básico:
ls

Resultado del listado del contenido del directorio

Este comando muestra el contenido del directorio actual. Debería 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 listado en formato «largo». Verá información adicional, como los permisos del archivo, el propietario, el tamaño y la fecha de modificación.

  1. Mostrar archivos ocultos:
ls -a

Este comando muestra todos los archivos, incluido el archivo oculto .hiddenfile que creó.

  1. Combinar opciones:
ls -la

Esto combina el formato largo (-l) con la opción para mostrar todos los archivos (-a).

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

Este comando muestra el contenido del directorio testdir, que en este momento debería estar vacío.

Los comandos de listado de este paso sirven para practicar y comprobar visualmente el resultado. El progreso se evalúa verificando que los archivos y el directorio requeridos se hayan creado correctamente.

Copiar archivos y directorios

Ahora que tiene algunos archivos con los que trabajar, aprenda a copiarlos:

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

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

Compruebe la copia:

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

Esto copia file2.txt en el directorio testdir.

  1. Copie un directorio:
cp -r testdir testdir_copy

La opción -r significa «recursive» (recursivo). Es necesaria al copiar directorios para garantizar que se copie todo su contenido.

  1. Compruebe las copias:
ls
ls testdir
ls testdir_copy

Terminal con los archivos copiados

Mover y cambiar el nombre de archivos y directorios

El comando mv se utiliza tanto para mover como para cambiar el nombre en Linux:

  1. Cambie el nombre de un archivo:
mv file1.txt newname.txt

Esto cambia el nombre de file1.txt a newname.txt.

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

Esto mueve newname.txt al directorio testdir.

  1. Cambie el nombre de un directorio:
mv testdir_copy new_testdir

Esto cambia el nombre de testdir_copy a new_testdir.

  1. Mueva y cambie el nombre en un solo comando:
mv testdir/newname.txt ./original_file1.txt

Esto mueve newname.txt fuera de testdir y cambia su nombre a original_file1.txt en el directorio actual.

  1. Compruebe los cambios:
ls
ls testdir

Resultados de la ejecución de los comandos

Eliminar archivos y directorios

Eliminar archivos y directorios es una operación potente. A diferencia de las interfaces gráficas, la línea de comandos normalmente no tiene una «Papelera de reciclaje» o «Papelera». Las eliminaciones realizadas con rm suelen ser permanentes. ¡Compruebe siempre los comandos antes de ejecutarlos!

Limpie los archivos y directorios que creó. Asegúrese de encontrarse en el directorio /home/labex/project.

pwd
ls -a

Debería ver archivos como original_file1.txt, .hiddenfile y file2.txt, además de directorios como testdir y new_testdir.

.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
  1. Eliminar un solo archivo:

    rm original_file1.txt
    

    El comando rm (abreviatura de «remove», eliminar) borra archivos. Compruébelo:

    ls
    

    original_file1.txt ya no debería aparecer.

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

    Intente eliminar file2.txt, pero esta vez utilice la opción interactiva -i:

    rm -i file2.txt
    

    La opción -i solicita confirmación antes de eliminar cada archivo. Escriba y (para responder afirmativamente) y pulse Enter para confirmar la eliminación. Si escribe n o cualquier otro carácter, el archivo no se eliminará.

    ls
    

    Si confirmó la operación, file2.txt ya no debería aparecer.

  3. Compruebe qué ocurre con un directorio que no está vacío:

    ¿Recuerda new_testdir, que creó al cambiar el nombre de testdir_copy? Todavía contiene la copia de file2.txt, por lo que rmdir fallará. Compruebe primero su contenido:

    ls new_testdir
    

    Debería ver file2.txt. Ahora pruebe rmdir:

    rmdir new_testdir
    

    rmdir (eliminar directorio) solo funciona con directorios vacíos.

    ls
    

    new_testdir no se puede eliminar porque no está vacío, por lo que debería seguir apareciendo en el listado.

  4. Intente eliminar un directorio que no está vacío:

    Ahora, pruebe rmdir con testdir, que todavía contiene file2.txt (copiado en el paso 4):

    ls testdir
    rmdir testdir
    

    Probablemente verá un mensaje de error similar a rmdir: failed to remove 'testdir': Directory not empty. Es lo esperado, porque rmdir no puede eliminar directorios que contienen archivos u otros directorios.

  5. Eliminar un directorio y su contenido de forma recursiva:

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

    rm -r testdir
    

    Este comando elimina el directorio testdir y todo lo que contiene. Utilícelo con precaución.

    ls
    

    testdir ya no debería aparecer.

  6. Forzar la eliminación (utilice esta opción con máxima precaución):

    En ocasiones, puede necesitar eliminar archivos sin que se le solicite confirmación, incluso si están protegidos contra escritura (aunque aquí no hay ninguno). La opción -f (forzar) permite hacerlo.

    Elimine el archivo oculto:

    rm .hiddenfile
    ls -a
    

    Ahora, combine -r y -f. El comando rm -rf es extremadamente potente y puede resultar peligroso. Elimina directorios de forma recursiva (-r) y fuerza la eliminación sin solicitar confirmación (-f).

    ¡¡¡ZONA DE PELIGRO!!! Asegúrese ABSOLUTAMENTE de saber qué va a eliminar antes de ejecutar rm -rf. Un pequeño error tipográfico podría borrar archivos esenciales del sistema o sus datos personales. No hay forma de deshacer la operación. Por ejemplo, rm -rf / podría intentar eliminar todo el sistema (si cuenta con los permisos necesarios). Compruebe siempre la ruta dos veces.

    Cree un directorio y un archivo temporales para realizar una demostración segura:

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

    Nota: Observe que usamos -R (mayúscula) con ls en lugar de -r (minúscula), como hicimos con cp y rm. No se trata solo de una diferencia entre mayúsculas y minúsculas: son opciones completamente distintas. En ls, -R significa «listado recursivo» (listar subdirectorios), mientras que -r significa «orden inverso». En cp y rm, la opción recursiva es -r (minúscula). Consulte siempre el manual (man command) para conocer las opciones específicas de cada comando.

    Ahora, elimínelo por la fuerza:

    rm -rf temp_dir
    

    Compruebe que se haya eliminado:

    ls
    

    temp_dir ya no debería aparecer.

Recuerde: en la línea de comandos de Linux, los archivos eliminados generalmente desaparecen para siempre. Utilice rm con cuidado.

Resumen

¡Enhorabuena! Ha aprendido las operaciones esenciales con archivos en Linux:

  • Desplazarse por el sistema de archivos con cd y pwd
  • Crear archivos y directorios con touch y mkdir
  • Listar contenido con ls y sus opciones
  • Copiar archivos y directorios con cp
  • Mover y cambiar el nombre con mv
  • Eliminar archivos y directorios con rm y rmdir

Estos comandos constituyen la base de la administración de archivos en Linux. Con la práctica, adquirirá soltura para administrar archivos y directorios desde la línea de comandos.

Recuerde utilizar estos comandos con cuidado, especialmente rm, ya que elimina archivos y directorios de forma permanente y no permite recuperarlos.

A medida que avance en su aprendizaje de Linux, consulte las páginas de manual, por ejemplo man ls, para obtener más información sobre cada comando y sus opciones. ¡Disfrute explorando!