Utilizo este comando para buscar todos los archivos en un directorio que contiene una cadena específica:
grep -lir "string" path_to directory
Ejemplo
grep -lir "users" /var/www/mysite
Este comando muestra todos los archivos en el directorio especificado que contienen la cadena 'usuarios'. Sin embargo, quiero ordenarlos por fecha de modificación descendente; más nuevo al más antiguo.
¿Alguna ayuda?
Respuesta1
Primero usamos la Z
opción y luego, en el otro extremo, xargs con la opción -0 capturará los nombres de los archivos y los registrará, ordenará y eliminará la información de tiempo para revelar una primera lista ordenada más nueva.
grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-
Respuesta2
Con zsh
:
print -rl ./**/*(.De_'grep -qi "string" $REPLY'_om)
Esto usaclasificatorios globalespara seleccionar solo los archivos normales ( .
) que contienen string
(es decir, los resultados globales para los cuales e_'grep -qi "string" $REPLY'_
devuelve la expresión true
) y luego om
ordena los resultados finales por mtime
(los más nuevos primero). Elimine el D
si no desea buscar archivos ocultos.