1. 程式人生 > >iOS - Mac 重建 Spotlight 索引

iOS - Mac 重建 Spotlight 索引

使用 是把 情況下 用戶 分享 設置 替換 想要 enabled

前言

  • 最近發現很多 mac 用戶反映自己的 mac 系統顯示內存占用高達 200 多 Gb,可是實際上自己下載的應用程序根本沒那麽多,使用專業的內存掃描工具掃的結果跟系統本身顯示的完全不一樣。那麽出現這個問題到底是什麽原因呢,下面就給大家詳細介紹下這種情況的發生原因及解決方法。

    技術分享圖片

    • 這是 Mac 自帶的 system information.app (About this mac)。

1、機制

  • 當我們在點擊存儲這個按鈕時,Mac 後臺會通過 spotlight 的功能進行對 audio,movie,apPS 這些 屬性的文件進行統計。

  • spotlight 的背後是通過 Mac 的一套 metadata 的機制進行索引的,metadata 可以理解成對整個文件系統做了一個快速的分類和元數據 index,就像字典目錄一樣,可以感受一下,這些元數據存儲在根目錄。

    技術分享圖片

  • Mac 對整個 metadata 進行了規範,可以通過命令 mdls 查看,屬性 kMDItemContentTypeTree,遞增的屬性。

    技術分享圖片

  • 所以對於統計 Apps 的大小,就是把所有符合 ”com.apple.package” 進行匯總。

2、解決方法

  • 在一些情況下面,metadata 索引可能會出現錯誤,這時候,我們看到統計出來的結果會有問題或者偏差太大,這時候,可以通過下面的步驟

  • 確保 spotlight 沒被關閉

    技術分享圖片

  • 顯示 enabled 進入第二步,不然需要把 spotlight 打開
    $ alexs-iMac:Documents alex$ sudo mdutil -i on /

  • 對 Mac 的整個磁盤,metadata 重新建立索引
    $ sudo mdutil -E /

  • 這步操作比較耗磁盤的 IO,明顯的感覺就是系統用起來沒有那麽順暢了,如果磁盤大,文件多,可能需要很長時間。最好在下班,或者吃飯間隙操作。

3、重建 Spotlight 索引

  • Mac系統中的 Spotlight 索引(屏幕右上角)功能相信大家一定經常使用,雖然 Spotlight 在磁盤內容更新方面索引也很及時,但是還是會出現某些情況,需要我們重新建立一次 Spotlight 索引,例如新恢復的磁盤,或者出於某些情況要重建索引,這個時候就需要我們手動重建 Spotlight 索引了。

  • 下面是使用終端命令重建 Spotlight 索引的方式

    $ sudo mdutil -E /

  • 上面的命令可以將Mac下的所有磁盤全部重建索引,包括 Mac 本身的硬盤,磁盤鏡像,還有外接硬盤等。
    $ sudo mdutil -E /Volumes/Macintosh\ HD/

  • 上面的命令可以只選擇重建Mac主磁盤 Macintosh HD 的索引
    $ sudo mdutil -E /Volumes/External/

  • 上面的命令可以重建某個外接磁盤的索引內容,當然要考慮替換外接磁盤的名字,這裏的名字是 “External”

  • 其實還可以選擇重建某個文件的索引,或者某個文件夾目錄也可以,首先我們需要直到這個文件或者文件夾目錄的路徑,之後替換到下面的命令中就可以了:
    $ mdimport /path/to/file

  • 當然,如果你不喜歡用終端,還有一個使用 Spotlight 控制面板完成的小技巧:

  • 在系統偏好設置中打開 Spotlight,之後點“隱私”標簽找到防止搜索,將想要重新檢索的磁盤或者目錄拖拽進來

  • 拖拽進來後選中,點擊下面的“減號”符號,把這個防止的內容再去掉,就可以重建索引了

iOS - Mac 重建 Spotlight 索引