L'esempio sopra mostra una soluzione che utilizza il Finder. Sotto il cofano sta usando la libreria dei metadati dei file. Questo è accessibile tramite la riga di comando tramite "utilità md * come mdfind
, mdls
ecc. Se si eseguirà questo comando frequentemente si potrebbe desiderare di averlo a disposizione per incollare facilmente in un terminale invece di puntare e cliccando nel Finder e questo sarebbe un modo rapido per restituirli.
mdfind 'kMDItemContentModificationDate >= $time.now(-300)'
ti mostrerà tutti i file che sono stati modificati negli ultimi 5 minuti (300 secondi) sull'intero file system.
Se sai dove il programma gestirà i file, puoi limitare i risultati usando il comando -onlyin
, per esempio per trovare i file nella tua cartella Desktop prova:
mdfind -onlyin ~/Desktop 'kMDItemContentModificationDate >= $time.now(-300)'
Non parli molto del programma. Puoi utilizzare mdls
sul file per ottenere un elenco di tutti gli attributi che potresti essere in grado di eseguire una query:
$ 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 = ""
Quindi forse potresti filtrare il tipo di attributo MDItemContentType
. O se questo è un programma che controlli puoi impostare un attributo esteso in modo esplicito e aggiungerlo ai criteri di ricerca per assicurarti di ottenere solo i file dal tuo programma.
Infine un'altra opzione utile è il flag -live
. Rimarrà connesso e ti darà un conteggio del numero di file che soddisfano i criteri.
$ mdfind -onlyin ~/Desktop -live 'kMDItemContentModificationDate >= $time.now'
[Type ctrl-C to exit]
Query update: 1 matches
Query update: 2 matches
Questo può essere utile quando tutto ciò che devi sapere è che il processo ha toccato il file system. Se la tua query è abbastanza stretta, sai che cambierà solo in base al momento in cui vengono toccati quei file specifici e quindi puoi fare tutto ciò che devi fare in base al fatto che è successo.