2017-08-26 7 views
0

目的は、特定の州または国にあるすべての画像を見つけることです。化合物mdfind検索

mdfind kind:image 

は、この特性を持っているものすべてのファイルを検索しますすべての画像

mdfind "kMDItemCountry == 'United States'" 

があります。

mdfind kind:image "kMDItemCountry == 'United States'" 

が失敗します。私は& &と()のさまざまなグループを使ってみましたが、動作させることはできません。 kMDIxxxのような属性検索と 'kind:image'を組み合わせるにはどうすればいいですか?

+0

私はハリケーンのために数日間オフラインになっています。 mdfind -onlyin〜 "(kMDItemContentTypeTree == '*イメージ')&&(kMDItemCountry == '*ジョージア*')" – user1625344

答えて

1

私は、どのように文書化されているのかとは対照的に、mdfindが実際にどのように動作するかについていくつかの実験を行う機会がありました。

まず、私のMacにぶら下がっていたtardis.pngというファイルのSpotlightデータを見てみましょう。ここで出力

_kMDItemOwnerUserID   = 501 
kMDItemBitsPerSample   = 32 
kMDItemColorSpace    = "RGB" 
kMDItemContentCreationDate  = 2017-05-31 14:15:03 +0000 
kMDItemContentModificationDate = 2017-05-31 14:15:03 +0000 
kMDItemContentType    = "public.png" 
kMDItemContentTypeTree   = (
    "public.png", 
    "public.item", 
    "public.png", 
    "public.data", 
    "public.image", 
    "public.content" 
) 
kMDItemCreator     = "Adobe Photoshop CC 2017 (Macintosh)" 
kMDItemDateAdded    = 2017-05-31 14:15:23 +0000 
kMDItemDisplayName    = "tardis.png" 
kMDItemFSContentChangeDate  = 2017-05-31 14:15:23 +0000 
kMDItemFSCreationDate   = 2017-05-31 14:15:22 +0000 
kMDItemFSCreatorCode   = "8BIM" 
kMDItemFSFinderFlags   = 0 
kMDItemFSHasCustomIcon   = (null) 
kMDItemFSInvisible    = 0 
kMDItemFSIsExtensionHidden  = 0 
kMDItemFSIsStationery   = (null) 
kMDItemFSLabel     = 0 
kMDItemFSName     = "tardis.png" 
kMDItemFSNodeCount    = (null) 
kMDItemFSOwnerGroupID   = 20 
kMDItemFSOwnerUserID   = 501 
kMDItemFSSize     = 1488497 
kMDItemFSTypeCode    = "PNGf" 
kMDItemHasAlphaChannel   = 0 
kMDItemKind     = "Portable Network Graphics image" 
kMDItemLogicalSize    = 1488497 
kMDItemOrientation    = 1 
kMDItemPhysicalSize   = 1490944 
kMDItemPixelCount    = 2091600 
kMDItemPixelHeight    = 1494 
kMDItemPixelWidth    = 1400 
kMDItemProfileName    = "sRGB IEC61966-2.1" 
kMDItemResolutionHeightDPI  = 72 
kMDItemResolutionWidthDPI  = 72 

そして

mdls tardis.png 

は一致すると一覧で表示する問合せで、そのファイル:

mdfind -onlyin . "(kMDItemPixelHeight>1500 || kMDItemPixelWidth=1400)&& kMDItemKind='*image*' && kMDItemProfileName='srgb*'c" 

&&(AND)と||を有する化合物の検索を行う方法を示しています(OR)、カッコ内に条件をグループ化する方法(conditionA || conditionB)、大文字と小文字を区別しない検索を行う方法(検索文字列の後にcを付加することによって)。


:多分私は私のMac上で絵を作るために使用してきた私自​​身の参照;-)

リストのためのより多くのすべてのカメラやスキャナ:

mdfind -0 kind:image | xargs -0 mdls -n kMDItemAcquisitionModel | sort -u 
kMDItemAcquisitionModel = "645 PRO Mk III for iOS" 
kMDItemAcquisitionModel = "BlackBerry 8900" 
kMDItemAcquisitionModel = "BlackBerry 9000" 
kMDItemAcquisitionModel = "Canon EOS 5D Mark III" 
kMDItemAcquisitionModel = "Canon EOS 5D" 
kMDItemAcquisitionModel = "Canon EOS 7D Mark II" 
kMDItemAcquisitionModel = "Canon EOS 7D" 
kMDItemAcquisitionModel = "Canon EOS-1D Mark II N" 
kMDItemAcquisitionModel = "Canon EOS-1D Mark IV" 
kMDItemAcquisitionModel = "Canon EOS-1D X" 
kMDItemAcquisitionModel = "Canon EOS-1DS" 
kMDItemAcquisitionModel = "Canon EOS-1Ds Mark II" 
kMDItemAcquisitionModel = "Canon EOS-1Ds Mark III" 
kMDItemAcquisitionModel = "EOS-1Ds Mark III" 
kMDItemAcquisitionModel = "EPSON Perfection 4990" 
kMDItemAcquisitionModel = "NIKON D800" 
kMDItemAcquisitionModel = "NIKON D800E" 
kMDItemAcquisitionModel = "Perfection 4990" 
kMDItemAcquisitionModel = "Perfection4990" 
kMDItemAcquisitionModel = "PerfectionV700 " 
kMDItemAcquisitionModel = "PerfectionV700" 
kMDItemAcquisitionModel = "TANGO   " 
kMDItemAcquisitionModel = "TANGO" 
kMDItemAcquisitionModel = "iPad mini 4" 
kMDItemAcquisitionModel = "iPad mini" 
kMDItemAcquisitionModel = "iPad" 
kMDItemAcquisitionModel = "iPhone 3G" 
kMDItemAcquisitionModel = "iPhone 3GS" 
kMDItemAcquisitionModel = "iPhone 4" 
kMDItemAcquisitionModel = "iPhone 4S" 
kMDItemAcquisitionModel = "iPhone 5" 
kMDItemAcquisitionModel = "iPhone 5s" 
kMDItemAcquisitionModel = "iPhone 6" 
kMDItemAcquisitionModel = "iPhone 6s" 
kMDItemAcquisitionModel = "iPhone SE" 
kMDItemAcquisitionModel = "iPhone" 

はすべての写真を探しますiPhone 6で撮影:

mdfind "kMDItemAcquisitionModel='*iPhone*6*'" 

ノート

  • マン・ページが-onlyinが指定したディレクトリに検索範囲を制限しますと言います。それは含まれたディレクトリにも再帰するので、実際には正しくありません。

  • シングル(=)またはダブル(==)の等号を比較に使用しても違いはありません。

  • ドキュメントでは、大文字小文字を区別しない検索にstring==[c]"pattern"を使用できますが、これは間違っていて、上記の構文はmacOS Sierraで少なくとも機能します。

+0

もう一度見てください、私は私の答えを更新しました。 –