Bei Dateien wurden die Dateieigenschaften im Befehl "ls" gleichgesetzt

351
user607694

Ich habe einen Ordner, in dem sich Tausende Bilder befinden. Von diesen tausend Bildern möchte ich alle Bilder zusammenführen, deren Eigenschaften „Zuletzt erstellt“ und „Zuletzt geändert“ genau gleich sind. (Mit anderen Worten, ich möchte alle Bilder trennen, die ich zum Beispiel nie umbenannt habe.)

Gibt es eine Möglichkeit, dies vom Terminal aus zu tun?

Dies sind die beiden Befehle, die ich ls -tU- Listen-Datei nach Erstellungsdatum verketten möchte . (Ich bin auf einem Mac) ls -lt listet die Datei nach Änderungsdatum auf

so dass ich "Dateien auflisten will, deren Erstellungsdatum = Änderungsdatum ist"

0
Ist die Option "U" / "tU" eine neue? Nicht hier http://ss64.com/osx/ls.html (ich bin nicht o'sex). user367890 vor 7 Jahren 0
Es sieht nicht so aus, als hätte OSX native find eine `printf`-Option. Bei Bedarf hat vielleicht eine erweiterte Version. Dann etwas wie (hier GNU find (Linux), das Zugriff und Mod-Zeit vergleicht) `find. -name '* .jpg' -printf '% A + \ 0% T + \ 0% f \ n' | awk -F '\ 0' '$ 1 == $ 2 ' - Linux hat keinen Zeitstempel für die Erstellung. user367890 vor 7 Jahren 0
OXyS hat `GetFileInfo` (http://ss64.com/osx/getfileinfo.html), aber ich habe keine Testbox. Ich weiß also nicht, ob es beides auflistet, wenn` GetFileInfo -d -m` verwendet wird user367890 vor 7 Jahren 0
Wenn keine der oben genannten Funktionen funktioniert, müssen Sie möglicherweise auf Scripting zurückgreifen, z. B. in Python, wo sowohl die Erstellungs- als auch die Zugriffszeit verfügbar ist. Sicher gibt es Tools, die das können, aber so wie ich es bin (nicht sicher, ob ich es vorher erwähnt habe; auf einem MaC), wird es ein wenig umständlich, es weiter zu testen. user367890 vor 7 Jahren 0

1 Antwort auf die Frage

0
SaxDaddy

Am einfachsten ist es wahrscheinlich, den mdlsBefehl zu verwenden. mdlslistet die Metadatenattribute für eine angegebene Datei auf. Hier ist ein Beispiel für eine PNG-Datei, die ich auf meinem Desktop habe

$ mdls ~/Desktop/hipchat.png _kMDItemOwnerUserID = 205009058 _kTimeMachineIsCreationMarker = 1 _kTimeMachineNewestSnapshot = 4001-01-01 00:00:00 +0000 _kTimeMachineOldestSnapshot = 2016-06-10 19:25:01 +0000 kMDItemBitsPerSample = 32 kMDItemColorSpace = "RGB" kMDItemContentCreationDate = 2016-06-10 19:37:53 +0000 kMDItemContentModificationDate = 2016-06-10 19:37:53 +0000 kMDItemContentType = "public.png" kMDItemContentTypeTree = ( "public.png", "public.image", "public.data", "public.item", "public.content" ) kMDItemDateAdded = 2016-06-10 19:45:06 +0000 kMDItemDisplayName = "hipchat.png" kMDItemFSContentChangeDate = 2016-06-10 19:37:53 +0000 kMDItemFSCreationDate = 2016-06-10 19:37:53 +0000 kMDItemFSCreatorCode = "" kMDItemFSFinderFlags = 0 kMDItemFSHasCustomIcon = (null) kMDItemFSInvisible = 0 kMDItemFSIsExtensionHidden = 0 kMDItemFSIsStationery = (null) kMDItemFSLabel = 0 kMDItemFSName = "hipchat.png" kMDItemFSNodeCount = (null) kMDItemFSOwnerGroupID = 80 kMDItemFSOwnerUserID = 205009058 kMDItemFSSize = 22994 kMDItemFSTypeCode = "" kMDItemHasAlphaChannel = 0 kMDItemKind = "Portable Network Graphics image" kMDItemLogicalSize = 22994 kMDItemOrientation = 0 kMDItemPhysicalSize = 24576 kMDItemPixelCount = 74520 kMDItemPixelHeight = 81 kMDItemPixelWidth = 920 kMDItemResolutionHeightDPI = 0 kMDItemResolutionWidthDPI = 0 

Sie können dann die gesuchten Informationen wie gewünscht extrahieren.

$ mdls ~/Desktop/hipchat.png |grep -e kMDItemContentCreationDate |awk '' Created on 2016-06-10 at 19:37:53  $ mdls ~/Desktop/hipchat\ poll.png |grep -e kMDItemContentModificationDate |awk '' Modified on 2016-06-10 at 19:37:53