Obtenga todos los archivos que cambiaron más recientemente

6

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

También funcionará si puedo encontrar todos los archivos que se cambiaron más recientemente y luego verificar manualmente cuál pertenece al programa específico.

    
pregunta sanjihan 04.04.2016 - 09:06

2 respuestas

3

Intenta configurar una búsqueda en el Finder así:

Estonobuscaráarchivosdelsistemasinembargo.Paraesoquerráutilizar EasyFind . Tampoco especificará qué programa modificó el archivo.

    
respondido por el Iota 04.04.2016 - 14:17
2

El ejemplo anterior muestra una solución usando el Finder. Debajo del capó esta usando una biblioteca de metadatos de archivos. Esto se puede acceder a través de la línea de comandos a través de las utilidades md * como mdfind , mdls , etc. Si va a ejecutar este comando con frecuencia, es posible que desee tenerlo disponible para pegarlo fácilmente en un terminal en lugar de señalar y Al hacer clic en el Finder, esta sería una manera rápida de devolverlos.

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

Si sabe dónde manejará los archivos el programa, puede limitar los resultados con el comando -onlyin , por ejemplo, para buscar archivos en su carpeta de escritorio intente: mdfind -onlyin ~/Desktop 'kMDItemContentModificationDate >= $time.now(-300)'

No mencionas mucho sobre el programa. Puede usar mdls en el archivo para obtener una lista de todos los atributos que podría consultar por:

$ 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                   = ""

Entonces, tal vez podría filtrar en el tipo de atributo MDItemContentType . O si este es un programa que usted controla, puede establecer un atributo extendido explícitamente y agregarlo a los criterios de búsqueda para asegurarse de que solo obtenga los archivos de su programa.

Finalmente, otra opción que es útil es el indicador -live . Permanecerá conectado y le dará una cuenta de la cantidad de archivos que cumplen con 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 necesita saber es que el proceso tocó el sistema de archivos. Si su consulta es lo suficientemente precisa, sabrá que solo cambiará en función de cuándo se toquen esos archivos específicos y, luego, podrá hacer lo que sea necesario en función del hecho de que sucedió.

    
respondido por el cclark 05.04.2016 - 23:30

Lea otras preguntas en las etiquetas