Volver al índice

Módulo 2: Sistema de Archivos

Manejo de archivos, permisos, enlaces y búsquedas

Archivos y Directorios

En Linux, todo es un archivo: dispositivos, directorios, enlaces, etc.

Tipos de archivos:

  • - Archivo regular (texto o binario)
  • d Directorio
  • l Enlace simbólico
  • c Dispositivo de caracteres
  • b Dispositivo de bloques
# Ver tipo de archivo file archivo.txt # Muestra tipo: ASCII text, executable, etc.
# Información detallada stat archivo.txt # Muestra: inodo, permisos, tamaño, fechas

Editores desde Terminal

Nano (Recomendado para principiantes):

# Abrir archivo con nano nano archivo.txt # Atajos principales: # Ctrl+O: Guardar (Write Out) # Ctrl+X: Salir # Ctrl+G: Ayuda # Ctrl+W: Buscar

Vim (Para usuarios avanzados):

# Abrir archivo con vim vim archivo.txt # Modos: # i: Insertar texto # ESC: Volver a modo normal # :wq: Guardar y salir # :q!: Salir sin guardar

Para ver contenido sin editar: Usa cat, less, head, tail

Permisos y Propiedad

Linux usa un sistema de permisos basado en tres categorías:

# Ejemplo de permisos: -rwxr-xr-- # Posición 1: Tipo de archivo (- = archivo regular) # Posiciones 2-4: Permisos del usuario (rwx = leer, escribir, ejecutar) # Posiciones 5-7: Permisos del grupo (r-x = leer, ejecutar) # Posiciones 8-10: Permisos de otros (r-- = solo leer)

Cambiar permisos (chmod):

# Modo numérico (octal) chmod 755 script.sh # 7 = rwx (usuario), 5 = r-x (grupo), 5 = r-x (otros) chmod 644 config.txt # Solo dueño puede escribir
# Modo simbólico chmod u+x script.sh # Añadir ejecución al usuario chmod g-w archivo.txt # Quitar escritura al grupo chmod o=r archivo.txt # Otros solo lectura

Cambiar propiedad (chown):

sudo chown usuario:grupo archivo.txt # Cambiar usuario y grupo sudo chown usuario archivo.txt # Solo cambiar usuario sudo chgrp grupo archivo.txt # Solo cambiar grupo

Enlaces de Archivos

Característica Enlace Simbólico Enlace Duro
Crear ln -s origen destino ln origen destino
Inodo Diferente al original Mismo que el original
Si se borra original Enlace roto Sigue funcionando
Entre sistemas de archivos No
# Ejemplos prácticos ln -s /var/log/syslog ~/syslog_link # Enlace simbólico para acceso rápido ln archivo.txt backup_hardlink.txt # Enlace duro como backup ls -i archivo.txt backup_hardlink.txt # Mismo número de inodo para enlaces duros

Búsqueda en la Terminal

Buscar por nombre (find):

find . -name "*.txt" # Buscar archivos .txt en directorio actual find /home -type f -name "*.jpg" # Archivos .jpg en /home find . -size +100M # Archivos mayores a 100MB find . -mtime -7 # Modificados en últimos 7 días find . -user juan # Archivos del usuario juan

Buscar por contenido (grep):

grep "error" archivo.log # Buscar "error" en archivo grep -r "function" ./src/ # Buscar recursivamente en directorio grep -i "ERROR" archivo.log # Case insensitive grep -n "texto" archivo.txt # Mostrar número de línea grep -A 3 -B 3 "error" log.txt # Mostrar 3 líneas antes y después

Práctica Guiada: Organizador de Archivos

Crea un script que organice automáticamente tus descargas:

#!/bin/bash # organizador_descargas.sh # ------------------------------------------------- DIR_DESCARGAS="$HOME/Downloads" DIR_ORGANIZADO="$HOME/Documents/Organizado"
# Crear directorios por tipo mkdir -p "$DIR_ORGANIZADO"/{Documentos,Imagenes,Musica,Videos,Comprimidos}
# Mover documentos find "$DIR_DESCARGAS" -name "*.pdf" -exec mv {} "$DIR_ORGANIZADO/Documentos/" \; find "$DIR_DESCARGAS" -name "*.doc" -o -name "*.docx" -exec mv {} "$DIR_ORGANIZADO/Documentos/" \;
# Mover imágenes find "$DIR_DESCARGAS" \( -name "*.jpg" -o -name "*.png" -o -name "*.gif" \) \ -exec mv {} "$DIR_ORGANIZADO/Imagenes/" \;
# Establecer permisos adecuados chmod -R 755 "$DIR_ORGANIZADO"
# Crear enlace simbólico para acceso rápido ln -s "$DIR_ORGANIZADO" "$HOME/Desktop/Organizado"
echo "Organización completada. Revisa $DIR_ORGANIZADO"

Para ejecutar:

chmod +x organizador_descargas.sh
./organizador_descargas.sh