¿Cómo puedo seleccionar todos los archivos que se modifican todos con un día de diferencia en un directorio UNIX?

Depende de lo que quieras decir con “cómo” y “todos” y “día” …

Asumiré que estás hablando de hacer esto desde la línea de comandos en un shell. Para hacer eso, encuentra es tu amigo.

Si desea que todos los archivos de un directorio en particular se modifiquen en un día en particular, digamos el 14 de febrero de 2014, debe escribir

$ encontrar. -tipo f -newermt 2014-02-14 \! -newermt 2014-02-15

Si luego quisiera moverlos a / new / dir, usaría

$ encontrar. -tipo f -newermt 2014-02-14 \! -newermt 2014-02-15 -exec mv \ {\} / new / dir \;

Si está haciendo una pregunta diferente, existen diferentes argumentos de búsqueda para manejar casi cualquier cosa: -newer, -mtime, -mmin son todos candidatos.

También puede hacer esto mediante programación, utilizando la llamada opendir () para abrir el directorio, readdir () para recorrer todos los archivos que contiene, stat () para obtener el tipo de archivo y los tiempos modificados para cada archivo. Rellene en una matriz, clasifique, corte y corte en dados para agrupar los archivos como desee.

En algunas GUI hay funciones de “ordenar por fecha” que luego le permitirán arrastrar y soltar los archivos en una nueva carpeta.