Búsqueda por terminal de un archivo en una carpeta y subcarpetas

La inteligencia artificial es obvio que tiene ventajas y desventajas. Hoy hablaré de las ventajas.

Dentro de las ventajas, la inteligencia artificial me ha posibilitado realizar ciertas tareas en ubuntu que a mi nivel de usuario serían imposibles, ya que no tengo los conocimientos necesarios para diseñarlas. Con la inteligencia artificial, estoy descubriendo un mundo de posibilidades en ubuntu 24.04. Es cierto, que no aprendo a cómo programar dichas tareas, pero entre reto y reto, siempre algo se aprende. Por eso, desde aquí, como @internetlan te animo a que tu también hagas lo mismo.

Recuerda, que por mucha inteligencia artificial y tecnología que esté en tu mano, llegar al objetivo cuesta, ten paciencia, paso a paso y si estás bloqueado, deja pasar un tiempo y luego vuélvelo a intentarlo.

Vayamos, ahora al grano:

# 🔎 Buscar archivos por fecha y rango con terminal + menú interactivo (Linux / Nemo)

## 🎯 Objetivo
Localizar **archivos modificados** dentro de una carpeta **incluyendo subcarpetas**, usando **terminal**, con:
- búsqueda por **día exacto**
- búsqueda por **rangos** (hoy, ayer, últimos días, personalizado)
- **menú interactivo** para seleccionar resultados
- apertura directa en **Nemo** o en la aplicación asociada

Solución pensada para **uso real y diario**.

---

## 🧠 Conceptos clave (validados)

- `find` es **recursivo por defecto**.
- El criterio usado es **fecha de modificación (Modify / mtime)**.
- El filtro correcto y preciso es `-newermt`.
- La fecha de creación **NO se usa** (no es fiable en Linux).
- En mi sistema:
  - **Nemo 6.0.2**
  - ❌ **NO soporta** `nemo --select`
- La forma robusta de integración es:
  - abrir la **carpeta contenedora** con Nemo
  - o abrir el archivo con `xdg-open`

---

## 🧪 Comando base correcto (referencia)

Buscar archivos modificados un día concreto:

```bash
find . -type f \
  -newermt "2026-01-10 00:00" \
  ! -newermt "2026-01-11 00:00" \
  2>/dev/null

✔ Incluye subcarpetas
✔ Cualquier tipo de archivo (PDF, DOCX, JPG, etc.)

📂 Abrir resultados desde terminal (formas válidas)

Abrir la carpeta que contiene un archivo:

nemo "$(dirname archivo.ext)"

Abrir archivo con su aplicación asociada:

xdg-open archivo.ext

Abrir la carpeta actual:

nemo .

❌ Lo que NO funciona en mi Nemo

nemo --select archivo.ext

Motivo:

  • Opción no incluida en la compilación de Nemo 6.0.2 de Ubuntu.
  • No es error de uso.

🧩 Solución definitiva: script interactivo con rangos

📍 Características del script

  • Búsqueda recursiva
  • Basada en Modify (mtime)
  • Menú inicial para elegir rango:
    • Hoy
    • Ayer
    • Últimos 7 días
    • Últimos 30 días
    • Día exacto
    • Rango personalizado (con horas)
  • Selección interactiva con fzf (si está instalado)
  • Acciones disponibles:
    1. Abrir carpeta en Nemo
    2. Abrir archivo
    3. Copiar ruta al portapapeles
    4. Ver detalles (stat)

📁 Ubicación del script

~/.scripts/buscar_fecha_menu.sh

Debe ser ejecutable:

chmod +x ~/.scripts/buscar_fecha_menu.sh

▶️ Uso del script

Buscar desde la carpeta actual:

~/.scripts/buscar_fecha_menu.sh

Buscar indicando carpeta:

~/.scripts/buscar_fecha_menu.sh /ruta/a/carpeta

⚡ Mejora clave: fzf

  • fzf instalado
  • Selección instantánea escribiendo parte del nombre
  • Navegación fluida con teclado

Instalación:

sudo apt install fzf

🚀 Integración total: comando corto buscar

Función en ~/.bashrc

# Buscar archivos por fecha/rango con menú interactivo
buscar () {
    ~/.scripts/buscar_fecha_menu.sh "${1:-.}"
}

Aplicar cambios:

source ~/.bashrc

Uso:

buscar
buscar ~/Documentos

🧭 Flujo de trabajo final

Terminal
 └── buscar
     ├── elegir rango temporal
     ├── filtrar con fzf
     ├── seleccionar archivo
     └── abrir Nemo / archivo / copiar ruta

✅ Conclusión

  • find + -newermt es el método correcto y preciso
  • El modo rango evita recordar fechas exactas
  • fzf convierte la búsqueda en algo inmediato
  • No dependo de opciones no soportadas de Nemo
  • Solución:
    • robusta
    • reutilizable
    • documentada
    • pensada para el día a día

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.