6 votos

Consigue todos los archivos que cambiaron más recientemente

Tengo un programa que cambia algunos archivos en el sistema de archivos. Me gustaría saber exactamente cuál ha cambiado. ¿Cómo puedo ver todos los archivos del sistema que fueron cambiados hace 5 minutos por un programa específico. ¿Es posible?

También funcionaría si pudiera encontrar todos los archivos que fueron cambiados más recientemente y luego comprobar manualmente cuál pertenece a un programa específico.

4voto

Liquid5n0w Puntos 21

El ejemplo anterior muestra una solución utilizando el Finder. Debajo del capó esto es usar la biblioteca de archivos de metadatos. Se puede acceder a ella a través de la línea de comandos mediante las utilidades "md*" como mdfind , mdls etc. Si vas a ejecutar este comando con frecuencia, tal vez quieras tenerlo disponible para pegarlo fácilmente en una terminal en lugar de apuntar y hacer clic en el Finder y esta sería una forma expedita de devolverlos.

mdfind 'kMDItemContentModificationDate >= $time.now(-300)' le mostrará todos los archivos que fueron modificados en los últimos 5 minutos (300 segundos) en todo el sistema de archivos.

Si sabes dónde el programa va a manejar los archivos puedes limitar los resultados usando el -onlyin por ejemplo, para encontrar archivos en la carpeta del Escritorio: mdfind -onlyin ~/Desktop 'kMDItemContentModificationDate >= $time.now(-300)'

No mencionas mucho sobre el programa. Puedes usar mdls en el archivo para obtener un listado de todos los atributos por los que se puede consultar:

$ mdls SampleDoc.pages
_kMDItemOwnerUserID            = 501
kMDItemAuthors                 = (
    ""
)
kMDItemComment                 = ""
kMDItemContentCreationDate     = 2011-11-17 02:01:06 +0000
kMDItemContentModificationDate = 2011-11-17 02:01:06 +0000
kMDItemContentType             = "com.apple.iwork.pages.sffpages"
kMDItemContentTypeTree         = (
    "com.apple.iwork.pages.sffpages",
    "public.zip-archive",
    "com.pkware.zip-archive",
    "public.data",
    "public.item",
    "public.archive",
    "public.composite-content",
    "public.content"
)
kMDItemDateAdded               = 2015-11-23 05:13:23 +0000
kMDItemDisplayName             = "SampleDoc.pages"
kMDItemFonts                   = (
    "Helvetica-Bold",
    "Helvetica-Oblique",
    LucidaGrande
)
kMDItemFSContentChangeDate     = 2011-11-17 02:01:06 +0000
kMDItemFSCreationDate          = 2011-11-17 02:01:06 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 64
kMDItemFSHasCustomIcon         = (null)
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = (null)
kMDItemFSLabel                 = 0
kMDItemFSName                  = "SampleDoc.pages"
kMDItemFSNodeCount             = (null)
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 823736
kMDItemFSTypeCode              = ""
kMDItemKeywords                = (
    ""
)
kMDItemKind                    = "Pages Publication"
kMDItemLogicalSize             = 823736
kMDItemPhysicalSize            = 827392
kMDItemTitle                   = ""

Así que tal vez podrías filtrar en el MDItemContentType tipo de atributo. O si se trata de un programa que controlas, podrías establecer un atributo extendido explícitamente y añadirlo a los criterios de búsqueda para asegurarte de que sólo recibes los archivos de tu programa.

Finalmente otra opción que es útil es la -live bandera. Se mantendrá conectado y le dará un recuento del número de archivos que cumplen los criterios.

$ mdfind -onlyin ~/Desktop -live 'kMDItemContentModificationDate >= $time.now'
[Type ctrl-C to exit]
Query update: 1 matches
Query update: 2 matches

Esto puede ser útil cuando todo lo que se necesita saber es que el proceso tocó el sistema de archivos. Si tu consulta es lo suficientemente estrecha, sabes que sólo cambiará en función de cuándo se toquen esos archivos específicos y entonces podrás hacer lo que necesites hacer en función del hecho de que haya ocurrido.

2voto

Iota Puntos 186

Intenta establecer una búsqueda en el Finder así: enter image description here

Sin embargo, esto no buscará en los archivos del sistema. Para eso querrás usar EasyFind . Tampoco especificará qué programa modificó el archivo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X