Относительно файлов, приведших к приравниванию свойств файла в команде "ls"

260
user607694

У меня есть папка, в которой находятся тысячи изображений. Из этой тысячи изображений я хочу собрать воедино все те изображения, чьи свойства «Последний созданный» и «Последний измененный» в точности совпадают. (Другими словами, я хочу отделить все изображения, которые я никогда не переименовывал, например)

Есть ли способ сделать это из терминала?

это две команды, которые я хочу объединить файл списков ls -tU по дате создания. (Я на mac) ls -lt перечисляет файл по дате изменения

такой, что я хочу "Список файлов, чья дата создана = дата изменения"

0
Является ли опция `U` /` tU` новой? Не здесь http://ss64.com/osx/ls.html (я не o'sex). user367890 7 лет назад 0
Не похоже, что в OSX native find есть опция `printf`. Если подходит, возможно, какая-то расширенная версия имеет. Затем что-то вроде (здесь GNU find (linux) сравнивает доступ и время мода) `find. -name '* .jpg' -printf '% A + \ 0% T + \ 0% f \ n' | awk -F '\ 0' '$ 1 == $ 2 ' `- у linux нет метки времени создания. user367890 7 лет назад 0
OXyS имеет `GetFileInfo` (http://ss64.com/osx/getfileinfo.html), но у меня нет ни одного теста o, поэтому я не знаю, перечисляет ли он оба при использовании` GetFileInfo -d -m` user367890 7 лет назад 0
Если ничего из вышеперечисленного не работает, вам, возможно, придется прибегнуть к написанию сценариев, например, в Python, где доступно время создания и доступа. Конечно, есть инструменты, которые могут это сделать, но, как и я (не уверен, упомянул ли я об этом раньше; на MaC), это становится немного громоздким для дальнейшего тестирования. user367890 7 лет назад 0

1 ответ на вопрос

0
SaxDaddy

The easiest way is probably to use the mdls command. mdls lists the metadata attributes for a specified file. Here is a sample output for a .png file I have on my Desktop

$ 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 

You can then extract the info your looking for like so.

$ 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