何千枚もの画像が入っているフォルダがあります。その何千枚もの画像のうち、「最終作成日」と「最終変更日」のプロパティがまったく同じものをすべてまとめたいです。(言い換えると、たとえば名前を変更していない画像をすべて分離したいのです)
ターミナルからこれを行う方法はありますか?
これらは連結したい2つのコマンドです ls -tU作成日順にファイルをリストします。(私は Mac を使用しています) ls -lt更新日順にファイルをリストします
私がしたいのは 「作成日 = 変更日であるファイルを一覧表示」
答え1
最も簡単な方法は、おそらくmdls
コマンドを使用することです。mdls
指定されたファイルのメタデータ属性を一覧表示します。以下は、デスクトップにある .png ファイルの出力例です。
$ 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
すると、次のようにして探している情報を抽出できます。
$ 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