Lista de archivos modificados recientemente para un directorio y todos los subdirectorios

14

En Linux conozco este comando para buscar y enumerar los últimos archivos modificados en un directorio con todos sus subdirectorios.

find /var/www/ -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

¿Hay un equivalente de Windows CLI?

JohnnyFromBF
fuente
¿Está buscando solo archivos modificados? ¿O estás mirando todos los archivos?
Keltari
1
Estoy seguro de que PowerShell puede hacer esto mucho más fácilmente que el lote, pero si absolutamente debe usar este último ... Intente dir /a-d /o-d /tw /s(mostrar solo archivos, ordenar por fecha descendente, usar el último tiempo de escritura para ordenar, recurse en subdirecciones). Sin embargo, esto mostrará una lista de todos los archivos. Para limitar la lista solo a los archivos modificados más recientes, use la brillante solución de dbenham aquí .
Karan
Un par de comentarios sobre el comando de Linux: (1) En lugar de -exec, es posible que desee considerar xargs. (2) Si, como usted dice, desea ordenar un árbol (sub) de directorio completo por fecha de modificación (y luego mirar el N más nuevo ), entonces lo que tiene es razonable. Pero si puede obtener la información que necesita encontrando todos los archivos modificados en los últimos N días, mire find … -mtime ….
Scott
2
Para agregar a mi comentario anterior, también puede investigar forfiles /s /d +<date>.
Karan

Respuestas:

21

PowerShell 2.0

Últimos 10 archivos modificados

Dir C:\folder -r | ? {! $_.PSIsContainer} | sort LastWriteTime | select -last 10

Archivos modificados desde la fecha dada

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} 

Lea más en http://ss64.com/ps/

nixda
fuente
Si solo desea mostrar los directorios con archivos modificados, haga esto. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | findtr Directory
Rob
0
dir c:\windows\ /aa /s /O-D

Enumera todos los archivos con el conjunto de atributos de archivo (modificado) en la carpeta c: \ windows y todas sus subcarpetas por fecha (la más nueva primero)

Editar: este método solo funcionará si borra los bits de archivo en algún momento o la lista simplemente crecerá y crecerá.

Keltari
fuente
1
¿Qué tiene que ver el atributo Archive con los archivos modificados recientemente?
Karan
1
Todo . Cualquier archivo que se cambie obtiene el atributo de archivo establecido por el sistema operativo. Así es como los programas de respaldo saben que un archivo ha cambiado y necesita una copia de respaldo.
Keltari
3
Tu edición es extremadamente importante. Los archivos con + A ya no verán ningún cambio. ¿Por qué no encontrar alguna forma de hacer esto basado en la fecha de modificación?
Karan
0

Eche un vistazo a MT Directory Changes Watcher. Puede ser adecuado para sus necesidades.

El programa vigila los cambios de archivos en un directorio particular (directorio de observación) y luego copia los archivos cambiados a otra carpeta (directorio espejo) guardando la estructura del directorio. Esto puede ser muy útil cuando tiene una copia local del sitio remoto y desea cargar solo archivos, cambiados localmente después de la última carga.

http://mito-team.com/projects/dcw

MiSHuTka
fuente