それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

mdlsコマンドで アプリケーションのCFBundleIdentifier ( bundle Identifier )の文字列を探す

BundleIdentifier の Identifier ( 識別子文字列)を取り出す。

mac のアプリケーションの識別子こと kMDItemCFBundleIdentifier を調べる。

plutil でxmlgrep して CFBundleIdentifier を調べててたけど。もっと簡単に identifier を調べて、UTI文字列を取り出す方法を見つけたので、メモっておく。

takuya@.bin$ mdls -name kMDItemCFBundleIdentifier  /Applications/Microsoft\ Remote\ Desktop.app
kMDItemCFBundleIdentifier = "com.microsoft.rdc.mac"

mdls コマンドで Appの情報を取り出す

mdls /Applications/Google\ Chrome.app

アプリケーションのPATHを引数に与えてあげればいい。

mdls 自体は、 list の ls と meta data の md の意味らしい。 ( man mdls )

その他の使い方としては、mdlsを使えばファイルのメタデータを取得できるらしい。そのうち調べたい。

takuya@.bin$ mdls
(null): no filename specified!

usage: mdls [-name attr] [-raw [-nullMarker markerString]] [-plist file] path
list the values of one or all the attributes of the specified file
  -raw:         don't print attribute names before values
  -nullMarker:  substitute this string for null attributes in raw mode
  -plist:       output attributes in XML format to file. Use - to write to stdout
                option -plist is incompatible with options -raw, -nullMarker, and -name
example:  mdls  ~/Pictures/Birthday.jpg
example:  mdls  -name Keyword ~/Pictures/Birthday.jpg

コマンドの場所

コマンドは macOSにバンドルされていて、 /usr/bin/ に存在した。

takuya@.bin$ which mdls
/usr/bin/mdls

mdls の取得例

takuya@.bin$ mdls /Applications/Microsoft\ Remote\ Desktop.app
_kMDItemDisplayNameWithExtensions  = "Microsoft Remote Desktop.app"
_kTimeMachineNewestSnapshot        = 4001-01-01 00:00:00 +0000
_kTimeMachineOldestSnapshot        = 2018-08-12 03:51:06 +0000
kMDItemAlternateNames              = (
    "Microsoft Remote Desktop.app"
)
kMDItemAppStoreCategory            = "ビジネス"
kMDItemAppStoreCategoryType        = "public.app-category.business"
kMDItemAppStoreIsAppleSigned       = 1
kMDItemCFBundleIdentifier          = "com.microsoft.rdc.mac"
kMDItemContentCreationDate         = 2017-01-12 00:21:41 +0000
kMDItemContentCreationDate_Ranking = 2017-01-12 00:00:00 +0000
kMDItemContentModificationDate     = 2017-01-18 07:54:08 +0000
kMDItemContentType                 = "com.apple.application-bundle"
kMDItemContentTypeTree             = (
    "com.apple.application-bundle",
    "com.apple.localizable-name-bundle",
    "com.apple.application-bundle",
    "public.directory",
    "public.executable",
    "com.apple.application",
    "public.item",
    "com.apple.package",
    "com.apple.bundle"
)
kMDItemDateAdded                   = 2018-08-13 06:13:02 +0000
kMDItemDateAdded_Ranking           = 2018-08-13 00:00:00 +0000
kMDItemDisplayName                 = "Microsoft Remote Desktop.app"
kMDItemExecutableArchitectures     = (
    "x86_64"
)
kMDItemFSContentChangeDate         = 2017-01-18 07:54:08 +0000
kMDItemFSCreationDate              = 2017-01-12 00:21:41 +0000
kMDItemFSCreatorCode               = ""
kMDItemFSFinderFlags               = 0
kMDItemFSHasCustomIcon             = (null)
kMDItemFSInvisible                 = 0
kMDItemFSIsExtensionHidden         = 1
kMDItemFSIsStationery              = (null)
kMDItemFSLabel                     = 0
kMDItemFSName                      = "Microsoft Remote Desktop.app"
kMDItemFSNodeCount                 = 1
kMDItemFSOwnerGroupID              = 0
kMDItemFSOwnerUserID               = 0
kMDItemFSSize                      = 39006120
kMDItemFSTypeCode                  = ""
kMDItemInterestingDate_Ranking     = 2018-08-31 00:00:00 +0000
kMDItemKind                        = "アプリケーション"
kMDItemLanguages                   = (
    empty
)
kMDItemLastUsedDate                = 2018-08-31 03:58:51 +0000
kMDItemLastUsedDate_Ranking        = 2018-08-31 00:00:00 +0000
kMDItemLogicalSize                 = 39006120
kMDItemPhysicalSize                = 15273984
kMDItemUseCount                    = 4
kMDItemUsedDates                   = (
    "2018-08-21 15:00:00 +0000",
    "2018-08-30 15:00:00 +0000"
)
kMDItemVersion                     = "8.0.27246"

以前の記事

http://takuya-1st.hatenablog.jp/entry/2017/04/23/002406