Jeśli chodzi o pliki, to zrównano właściwości pliku w poleceniu „ls”

0

Mam folder, w którym są tysiące obrazów. Z tych tysięcy obrazów chcę zebrać wszystkie te obrazy, których właściwości „Ostatnio utworzone” i „Ostatnie zmodyfikowane” są dokładnie takie same. (Innymi słowy, chcę na przykład oddzielić wszystkie obrazy, których nigdy nie zmieniłem)

Czy można to zrobić z terminala?

to są dwa polecenia, które chcę połączyć ls -tU lista plików według daty utworzenia. (Jestem na Macu) ls-lt wyświetla listę plików według daty modyfikacji

takie, które chcę „Lista plików, których data utworzenia = data modyfikacji”

user607694
źródło
Jest U / tU opcja nowa? Nie tutaj ss64.com/osx/ls.html (Nie jestem o'sex).
user367890
Nie wygląda na to, że rodzime wyszukiwanie OSX ma printf opcja. Jeśli jest to możliwe, może to być wersja rozszerzona. Potem coś takiego (tutaj GNU find (linux) porównuje czas dostępu i mod) find . -name '*.jpg' -printf '%A+\0%T+\0%f\n' | awk -F '\0' '$1 == $2 {print $3}' - Linux nie ma creation znak czasu.
user367890
OXyS ma GetFileInfo ( ss64.com/osx/getfileinfo.html ), ale nie mam żadnego testu box box, więc nie wiem, czy wyświetla on listę podczas używania GetFileInfo -d -m
user367890
Jeśli żadna z powyższych czynności nie zadziała, być może będziesz musiał skorzystać ze skryptów w np. Python, w którym dostępny jest czas tworzenia i dostępu. Oczywiście istnieją narzędzia, które mogą to zrobić, ale tak jak ja (nie jestem pewien, czy wspomniałem o tym wcześniej; w MaC), dalsze testowanie staje się nieco kłopotliwe.
user367890

Odpowiedzi:

0

Najprostszym sposobem jest prawdopodobnie użycie mdls dowództwo. mdls wyświetla atrybuty metadanych dla określonego pliku. Oto przykładowy plik wyjściowy pliku .png na moim pulpicie

$  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

Następnie możesz wyodrębnić informacje, których szukasz, w ten sposób.

$  mdls ~/Desktop/hipchat.png |grep -e kMDItemContentCreationDate |awk '{print "Created on "$3" at "$4}'
Created on 2016-06-10 at 19:37:53

$  mdls ~/Desktop/hipchat\ poll.png |grep -e kMDItemContentModificationDate |awk '{print "Modified on "$3" at "$4}'
Modified on 2016-06-10 at 19:37:53
SaxDaddy
źródło