2.1 Navegación y Gestión de Archivos
tutorial.getReady
- Entenderás la diferencia crítica entre rutas absolutas y relativas. -
Dominarás el listado de archivos avanzados y comodines (
ls,*). - Aprenderás el kit de supervivencia para manipular archivos (cp,mv,rm). - Conocerás cómo encontrar cualquier archivo perdido con
find.
Jerarquía
Sección titulada “Jerarquía"Recuerda que todo comienza en /.
flowchart TB; R["/"] --> E["/etc"]; R --> H["/home"]; R --> V["/var"]; R --> U["/usr"]; R --> T["/tmp"]; H --> HU["/home/usuario"];
Conceptos de rutas (path)
Sección titulada “Conceptos de rutas (path)"- Ruta absoluta: Comienza con
/. Siempre funciona, sin importar dónde estés. (ej.:/home/user/docs/file.txt). - Ruta relativa: No comienza con
/. Depende de tu ubicación actual. (ej.:docs/file.txto../file.txt).
flowchart LR; PWD["pwd = /home/juan/docs"] --> REL["ruta relativa: ../informe.txt"]; PWD --> ABS["ruta absoluta: /home/juan/informe.txt"];
Comandos de navegación
Sección titulada “Comandos de navegación"| Comando | Nombre | Función |
|---|---|---|
| pwd | Print Working Directory | Te dice dónde estás ahora mismo. |
| cd | Change Directory | Te mueve a una nueva carpeta. |
| cd .. | Sube un nivel. | |
| cd ~ | Va a tu directorio personal (home). | |
| cd - | Vuelve al directorio anterior. | |
| ls | List | Muestra los archivos en el directorio actual. |
Opciones de ls
Sección titulada “Opciones de ls"Rara vez ejecutas solo ls. Opciones habituales:
ls -l: Listado largo (permisos, propietario, tamaño, fecha).ls -a: Todos los archivos (muestra archivos ocultos que empiezan por.).ls -lh: Listado largo con tamaños legibles para humanos (MB, GB).ls -la: Listado largo de todos los archivos (incluyendo ocultos).ls -ltr: Ordena por fecha (los más recientes al final).
Patrones glob (comodines)
Sección titulada “Patrones glob (comodines)"Los comodines ayudan a seleccionar múltiples archivos:
*.txt: Todos los.txt.file?.txt: Coincidefile1.txt,fileA.txt, etc.docs/*/index.md: Cualquierindex.mddentro de un subdirectorio dedocs/.

Gestión de archivos
Sección titulada “Gestión de archivos"| Comando | Función | Ejemplo |
|---|---|---|
| mkdir | Crear directorio | mkdir projects |
| touch | Crear archivo vacío | touch notes.txt |
| cp | Copiar | cp notes.txt backup.txt |
| cp -r | Copiar de forma recursiva (carpeta) | cp -r projects/ projects-backup/ |
| mv | Mover (o renombrar) | mv notes.txt doc.txt |
| rm | Eliminar (borrar) | rm file.txt |
| rmdir | Eliminar directorio vacío | rmdir old-empty-dir |
| rm -i | Confirmación interactiva | rm -i file.txt |
Búsqueda de archivos
Sección titulada “Búsqueda de archivos"Herramientas habituales para localizar archivos en el sistema:
Busca archivos en una jerarquía de directorios.
Find Cheatsheet (referencia rápida)
Sección titulada “Find Cheatsheet (referencia rápida)"🔍 Búsqueda, tipo, tamaño y tiempo
| Patrón | Qué hace |
|---|---|
find . -name “file.txt” | Buscar un nombre exacto |
find . -iname “readme.md” | Buscar sin distinguir mayúsculas/minúsculas |
find /etc -name “*.conf” | Buscar por extensión/patrón |
find . -type f | Solo archivos regulares |
find . -type d | Solo directorios |
find . -type l | Solo enlaces simbólicos |
find . -maxdepth 1 -type f | Solo el directorio actual (sin recursión) |
find . -type f -empty | Archivos vacíos |
find . -type d -empty | Directorios vacíos |
find . -type f -size +100M | Archivos mayores de 100 MB |
find . -type f -size -10M | Archivos menores de 10 MB |
find . -type f -mtime -7 | Modificados en los últimos 7 días |
find . -type f -mtime +30 | Modificados hace más de 30 días |
find . -type f -mmin -60 | Modificados en los últimos 60 minutos |
find . -type f -atime -1 | Accedidos en las últimas 24 horas |
find . -type f -ctime -3 | Metadatos cambiados en los últimos 3 días |
🔧 Permisos, exclusiones y acciones
| Patrón | Qué hace |
|---|---|
find . -type f -perm 644 | Permiso exacto (modo octal) |
find . -type f -perm -u+w | Archivos escribibles por el usuario |
find / -type f -user root | Archivos cuyo dueño es root |
find /srv -type f -group www-data | Archivos cuyo grupo es www-data |
find . -path ./node_modules -prune -o -type f -print | Excluir un directorio |
find . ( -path ./node_modules -o -path ./.git ) -prune -o -type f -print | Excluir varios directorios |
find . -type f ! -name “*.log” | Excluir por patrón de nombre |
find . -type f ! -path ”*/cache/*“ | Excluir por patrón de ruta |
find . -type f -name “*.tmp” -delete | Borrar coincidencias |
find . -type f -name “*.log” -exec gzip ; | Ejecutar un comando por archivo |
find . -type f -name “*.jpg” -exec mv /tmp/images/ ; | Mover coincidencias |
find . -type f -name “*.conf” -exec grep -H “listen” ; | Buscar texto dentro de coincidencias |
find . -type f -name “*.log” -exec rm + | Borrado en lote (más rápido que ;) |
find . -type f -name “*.txt” -print0 | xargs -0 rm -f | Operaciones seguras con espacios (NUL) |
📖 Sintaxis y ejemplos
Sintaxis: find [ruta] [expresión]
Ejemplos:
find /etc -name “*.conf”: Busca todos los archivos en /etc que terminen en .conf.find . -type f: Busca solo archivos en el directorio actual.find . -type d: Busca solo directorios.find /var/log -size +10M: Busca archivos mayores de 10 MB.find . -perm 777: Busca archivos con permisos 777.find . -mtime -1: Busca archivos modificados en las últimas 24 horas.find . -user alice: Busca archivos cuyo propietario sea el usuario alice.find . -iname “*.jpg”: Búsqueda sin distinguir mayúsculas/minúsculas.find . -maxdepth 2 -name “*.md”: Limita la profundidad de búsqueda.find . -not -path ”*/node_modules/*”: Excluye directorios no deseados.find . -type f -name “*.log” -exec ls -l ;: Ejecuta una acción por cada resultado.
Encuentra archivos por nombre usando una base de datos preconstruida (más rápido que find, pero puede estar desactualizada).
- Sintaxis:
locate [patrón] - Actualizar la BD:
sudo updatedb(actualiza la base de datos que utilizalocate).
Localiza un comando.
- Ejemplo:
which python(muestra la ruta del ejecutable de Python).
whereis
Sección titulada “whereis"Localiza el binario, el código fuente y las páginas de manual de un comando.
- Ejemplo:
whereis ls
$PATH y resolución de comandos
Sección titulada “$PATH y resolución de comandos"Cuando escribes una orden, el shell busca el ejecutable en cada directorio de $PATH (separados por :).
- Ver tu PATH:
echo $PATH - Añadir temporalmente un directorio:
export PATH="$HOME/bin:$PATH" - Hacerlo persistente:
- En
bash: añade el export a~/.bashrco~/.profile - En
zsh: añádelo a~/.zshrc
- En
Comprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"- Estás en
/home/juan/docsy quieres copiar el archivoinforme.txtdirectamente a la carpeta padre/home/juan. ¿Cuál es el comando con ruta relativa correcto?
- Has descargado un script de internet y necesitas encontrar un archivo de log viejo que sea mayor a 100MB alojado en algún lugar de
/var/log. ¿Cuál es el comando más idóneo?
- Quieres listar todos los archivos, incluyendo los ocultos (que empiezan por punto), ordenados por fecha para ver los más recientes al fondo de la pantalla. ¿Qué combinación de banderas de
lsusarías?