Operaciones de archivos y directorios

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

¡Bienvenido al laboratorio de Introducción a las operaciones de archivos y directorios en Linux! Si eres nuevo en Linux, no te preocupes, te guiaremos en cada paso, explicando no solo qué hacer, sino también por qué lo hacemos. Este laboratorio está diseñado para brindarte experiencia práctica con el sistema de archivos de Linux, que es fundamental para trabajar con Linux.

Antes de sumergirnos, cubramos algunos conceptos básicos:

  • Sistema de archivos de Linux: Imagina esto como una estructura en forma de árbol para organizar todos los archivos de tu computadora. A diferencia de Windows con sus letras de unidad (C:, D:, etc.), Linux tiene un solo directorio raíz (/) del cual se ramifica todo lo demás.
  • Directorio: Este es el término de Linux para lo que en otros sistemas operativos se conoce como "carpeta". Es un contenedor para archivos y otros directorios.
  • Archivo: En Linux, ¡casi todo es un archivo! Los documentos normales, los directorios e incluso los dispositivos de hardware se tratan como archivos. Este enfoque unificado simplifica muchas operaciones.
  • Ruta: Esto es como una dirección para un archivo o directorio. Aprenderemos sobre rutas absolutas (que comienzan desde el directorio raíz) y rutas relativas (que comienzan desde tu ubicación actual).
  • Terminal: Este es tu centro de comandos para interactuar con Linux. Puede parecer intimidante al principio, pero pronto descubrirás que es una herramienta poderosa para administrar tu sistema.
  • Búsqueda de archivos: Linux proporciona herramientas poderosas para encontrar archivos en todo el sistema. Exploraremos comandos como find y which para ayudarte a localizar rápidamente archivos y ejecutables.

¿Listo para comenzar? ¡Empecemos nuestro viaje por el sistema de archivos de Linux!

Explorando la estructura de directorios de Linux

En este paso, daremos un recorrido por el sistema de archivos de Linux. Esto te ayudará a entender dónde se almacenan diferentes tipos de archivos y cómo está organizado el sistema.

  1. Abre tu terminal. Deberías ver un indicador que termina con un signo $. Aquí es donde escribirás tus comandos. Actualmente estás en tu directorio de proyecto, que es /home/labex/project. Confirmemos esto:

    pwd

    pwd significa "print working directory" (imprimir directorio de trabajo). Te dice dónde te encuentras en el sistema de archivos.

  2. Ahora, veamos la estructura de directorios completa:

    tree /

    ¡Guau! Eso es mucha información. El comando tree muestra la estructura de directorios en un formato similar a un árbol. El argumento / le dice que comience desde el directorio raíz. No te preocupes por entender todo lo que ves, nos centraremos en las partes más importantes.

  3. Exploremos algunos directorios principales:

    ls /home
    ls /etc
    ls /bin
    • /home es donde se almacenan los directorios de los usuarios. Cada usuario normalmente tiene su propio directorio aquí.
    • /etc contiene archivos de configuración del sistema.
    • /bin contiene los binarios (programas) de comandos esenciales que deben estar disponibles para todos los usuarios.
  4. Ahora, naveguemos al directorio raíz y listemos su contenido:

    cd /
    ls -l

    cd significa "change directory" (cambiar de directorio). El / te lleva al directorio raíz.
    ls -l lista el contenido del directorio en un formato detallado. El -l se llama opción o bandera, que modifica el comportamiento del comando.

  5. Volvamos a tu directorio de inicio:

    cd ~
    pwd

    El ~ es un atajo que siempre representa tu directorio de inicio, sin importar dónde te encuentres en el sistema de archivos.

Después de este paso, deberías tener una comprensión básica de la estructura de directorios de Linux y cómo navegar por ella. Recuerda, está bien si no memorizas todo, siempre puedes usar estos comandos para recordarte la estructura.

Ahora que tenemos una visión general del sistema de archivos, aprendamos a navegar por él de manera eficiente. Exploraremos los conceptos de rutas absolutas y relativas, que son cruciales para moverse por el sistema de archivos.

  1. Primero, creemos una estructura de directorios de práctica:

    mkdir -p ~/project/practice/subdirectory

    mkdir significa "make directory" (crear directorio). La opción -p nos permite crear directorios padre si no existen. Este comando crea un directorio practice dentro de tu directorio project, y un subdirectory dentro de practice.

  2. Navega al nuevo subdirectorio utilizando una ruta relativa:

    cd ~/project/practice/subdirectory
    pwd

    Esta ruta es relativa a tu directorio de inicio (~). Se llama ruta relativa porque depende de tu ubicación actual.

  3. Ahora, subamos un nivel en la estructura de directorios:

    cd..
    pwd

    .. siempre se refiere al directorio padre. Es un atajo útil para subir en el árbol de directorios.

  4. Usemos una ruta absoluta para volver al subdirectorio:

    cd /home/labex/project/practice/subdirectory
    pwd

    Esta es una ruta absoluta porque comienza desde el directorio raíz (/) y da la ruta completa al destino, independientemente de donde te encuentres actualmente.

  5. Ahora, practiquemos algunos atajos de navegación:

    cd ~ ## Ir al directorio de inicio
    pwd
    cd - ## Ir al directorio anterior
    pwd
    cd ## Otra forma de ir al directorio de inicio
    pwd

    Estos atajos pueden ahorrarte mucho tiempo al escribir.

Al final de este paso, deberías sentirte cómodo navegando por el sistema de archivos utilizando tanto rutas absolutas como relativas. Recuerda, la práctica hace al maestro, no dudes en experimentar con estos comandos.

Creando y gestionando archivos y directorios

Ahora que nos sentimos cómodos navegando por el sistema de archivos, aprendamos a crear y gestionar archivos y directorios. Estas son habilidades fundamentales para trabajar con Linux.

  1. Navega a tu directorio de proyecto:

    cd ~/project
  2. Creemos múltiples directorios a la vez:

    mkdir dir1 dir2 dir3
    ls

    mkdir puede crear múltiples directorios con un solo comando. ls lista el contenido del directorio actual, así que puedes ver lo que has creado.

  3. Ahora, creemos un archivo vacío:

    touch file1.txt
    ls -l file1.txt

    touch se utiliza para crear archivos vacíos o actualizar la marca de tiempo de archivos existentes. El comando ls -l muestra información detallada sobre el archivo, incluyendo su tamaño (que debería ser 0 bytes).

  4. Creemos un archivo con algún contenido:

    echo "Hello, Linux" > file2.txt
    cat file2.txt

    echo imprime texto, y > redirige ese texto a un archivo, creando el archivo si no existe. cat se utiliza para ver el contenido del archivo.

  5. Ahora, agreguemos contenido al archivo:

    echo "This is a new line." >> file2.txt
    cat file2.txt

    >> agrega contenido al archivo en lugar de sobrescribirlo. Observa cómo el archivo ahora tiene dos líneas.

  6. Finalmente, creemos una estructura de directorios anidada:

    mkdir -p nested/structure/example
    tree nested

    El comando tree nos da una buena representación visual de la estructura de directorios que acabamos de crear.

Al final de este paso, deberías sentirte cómodo creando archivos y directorios, agregando contenido a archivos y viendo el contenido de los archivos. Estas operaciones son la base de la gestión de archivos en Linux.

Copiando, moviendo y renombrando archivos

Ahora que sabemos cómo crear archivos y directorios, aprendamos a manipularlos. Cubriremos la copia, el movimiento y el renombrado de archivos y directorios.

  1. Comencemos copiando un archivo:

    cp file1.txt dir1/
    ls dir1

    cp es el comando de copia. Aquí, estamos copiando file1.txt al directorio dir1.

  2. Ahora, copiemos y renombremos un archivo con un solo comando:

    cp file2.txt dir2/file2_copy.txt
    ls dir2

    Esto crea una copia de file2.txt en dir2, pero con un nuevo nombre.

  3. Movermos un archivo:

    mv file1.txt dir3/
    ls
    ls dir3

    mv se utiliza para mover archivos. Observa que file1.txt ya no está en el directorio actual, sino que ahora aparece en dir3.

  4. También podemos usar mv para renombrar un archivo:

    mv dir3/file1.txt dir3/renamed_file.txt
    ls dir3

    Esto renombra file1.txt a renamed_file.txt dentro de dir3.

  5. Finalmente, copiemos un directorio y su contenido:

    cp -r nested dir1/
    tree dir1

    La opción -r le dice a cp que copie los directorios de forma recursiva (incluyendo todos los subdirectorios y archivos).

Recuerda, cuando estés moviendo o copiando archivos, puedes usar rutas absolutas o relativas. Elige la que sea más conveniente en tu contexto actual.

Viendo y editando el contenido de archivos

En este último paso, aprenderemos formas más avanzadas de ver el contenido de archivos y cómo editar archivos utilizando un editor de texto sencillo.

  1. Creemos un nuevo archivo con múltiples líneas utilizando un here-document (documento aquí):

    cat << EOF > multiline.txt
    Line 1: Hello, Linux
    Line 2: This is a multiline file.
    Line 3: Created using a here-document.
    EOF

    Esto utiliza un "here-document" para crear un archivo con múltiples líneas. Es una forma conveniente de crear archivos con contenido predefinido. El operador << va seguido de un delimitador (en este caso, EOF). La shell luego lee todas las líneas siguientes como entrada hasta que ve una línea que contiene solo el delimitador. Todo este bloque de texto se redirige luego al archivo multiline.txt.

  2. Veamos el contenido del archivo:

    cat multiline.txt

    Ya hemos usado cat antes, pero es especialmente útil para ver rápidamente el contenido de archivos.

  3. Veamos el archivo con números de línea:

    nl multiline.txt

    nl agrega números de línea a la salida, lo cual puede ser útil para hacer referencia a líneas específicas.

  4. Veamos las dos primeras líneas del archivo:

    head -n 2 multiline.txt

    head se utiliza para ver el principio de un archivo. La opción -n 2 especifica que queremos ver las primeras 2 líneas. Ten en cuenta que no hay espacio entre -n y 2 (es decir, -n2 también es válido y funciona de la misma manera).

  5. Veamos la última línea del archivo:

    tail -n 1 multiline.txt

    De manera similar, tail se utiliza para ver el final de un archivo. Nuevamente, -n 1 y -n1 son equivalentes.

  6. Ahora, editemos el archivo utilizando nano:

    nano multiline.txt

    Nano es un editor de texto sencillo. Puedes usar las flechas del teclado para navegar, escribir para editar y seguir los comandos en la parte inferior de la pantalla (^ significa Ctrl).

    Agrega una cuarta línea al archivo, luego guarda y sale (Ctrl+X, luego Y, luego Enter).

  7. Veamos el archivo actualizado:

    cat multiline.txt

    Deberías ver tu nueva línea agregada al archivo.

Estos comandos te dan herramientas poderosas para inspeccionar y modificar el contenido de archivos directamente desde la línea de comandos.

Buscando archivos en Linux

Encontrar archivos rápidamente es una habilidad esencial en Linux. Aprendamos algunos comandos comunes utilizados para localizar archivos.

  1. Primero, usemos el comando find para buscar todos los archivos.txt en el directorio actual y sus subdirectorios:

    find. -name "*.txt"

    Este comando debe listar todos los archivos.txt en tu directorio actual y subdirectorios. Si no ves ninguna salida, significa que no hay archivos.txt en tu estructura de directorios actual. Creemos uno:

    echo "This is a test file" > test.txt
    find. -name "*.txt"

    Ahora deberías ver./test.txt en la salida.

  2. Ahora, busquemos un archivo específico en todo el sistema:

    sudo find / -name "passwd"

    Este comando buscará archivos llamados "passwd" en todo el sistema de archivos. Usamos sudo aquí porque buscar en todo el sistema de archivos (empezando desde el directorio raíz /) requiere permisos elevados. Muchos directorios del sistema no son legibles por usuarios normales, así que sudo nos permite buscar en estas áreas protegidas.

    Deberías ver una salida similar a:

    /etc/pam.d/passwd
    /etc/passwd
    /usr/bin/passwd
    /usr/share/doc/passwd
    /usr/share/lintian/overrides/passwd
  3. El comando find es muy poderoso. También podemos buscar basándonos en el tamaño del archivo. Por ejemplo, encontremos archivos mayores de 1MB en tu directorio de inicio:

    find ~ -size +1M

    Esto debería listar cualquier archivo mayor de 1MB en tu directorio de inicio.

  4. También podemos usar find para buscar archivos modificados dentro de un cierto período de tiempo. Encontremos archivos en tu directorio de inicio que se hayan modificado en las últimas 24 horas:

    find ~ -mtime -1
  5. Finalmente, usemos el comando which para encontrar la ubicación de archivos ejecutables:

    which python

    Deberías ver una salida como:

    /usr/bin/python

    Si no ves esta salida, prueba con:

    which python3

Con estos comandos, deberías poder localizar fácilmente archivos en un sistema Linux. Recuerda, el comando find es muy poderoso y tiene muchas opciones que se pueden combinar, lo que lo convierte en una herramienta versátil para encontrar archivos basados en varios criterios.

Resumen

¡Felicidades! Has completado el laboratorio de Introducción a las operaciones de archivos y directorios en Linux. Repasemos lo que has aprendido:

  1. Exploraste la estructura de directorios de Linux, comprendiendo el propósito de directorios clave como /home, /etc y /bin.
  2. Aprendiste sobre rutas absolutas y relativas, y cómo navegar por el sistema de archivos de manera eficiente utilizando comandos como cd y atajos como ~ y ...
  3. Practicaste la creación de archivos y directorios, y aprendiste cómo agregar contenido a archivos utilizando comandos como mkdir, touch y echo.
  4. Dominaste la manipulación de archivos, incluyendo la copia, el movimiento y el renombrado de archivos y directorios con cp y mv.
  5. Aprendiste diversas formas de ver el contenido de archivos con cat, head y tail, y cómo editar archivos utilizando el editor de texto nano.
  6. Finalmente, exploraste técnicas poderosas de búsqueda de archivos utilizando comandos como find y which, lo que te permite localizar rápidamente archivos y ejecutables en todo el sistema Linux.

Estas habilidades forman la base para trabajar con Linux. A medida que continúes tu viaje en Linux, construirás sobre estos conceptos básicos para realizar operaciones más complejas y tareas de administración del sistema.

Recuerda, la clave para dominar estas habilidades es la práctica. No temas experimentar con estos comandos en tu entorno Linux. Intenta crear tus propias estructuras de directorios, mover archivos, editar el contenido de archivos y buscar archivos utilizando diferentes criterios. Cuanto más practiques, más cómodo te sentirás con la línea de comandos de Linux.

Con estas habilidades de gestión y búsqueda de archivos, estás bien equipado para navegar y manipular el sistema de archivos de Linux de manera eficiente. Sigue explorando y ¡feliz aprendizaje!