前言

  • 最近发现很多 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,之后点“隐私”标签找到防止搜索,将想要重新检索的磁盘或者目录拖拽进来

  • 拖拽进来后选中,点击下面的“减号”符号,把这个防止的内容再去掉,就可以重建索引了

Mac 重建 Spotlight 索引的更多相关文章

  1. SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗

    本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  2. spotlight 索引重建

    从Mac的App Store 上 自动更新微信之后,发现不能在SpotLight上搜索到了. 想着应该是索引出现了问题. 方法一. 采用如下命令重建索引: sudo mdutil -i off /该命 ...

  3. Oracle重建表索引及手工收集统计信息

    Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...

  4. SQL Server调优系列进阶篇 - 如何重建数据库索引

    随着数据的数据量的急剧增加,数据库的性能也会明显的有些缓慢这个时候你可以考虑下重建索引或是重新组织索引了. DBCC SHOWCONTIG('表名') 可以查看当前表的索引碎情况. 重建索引 方法一: ...

  5. oracle 重建分区索引

    分区表的所有分区相当于一个单独的表. 创建在分区表上的索引,就相当于在所有分区上单独创建的索引(主键索引除外). 重建分区表的索引回报: ORA-14086:不能将分区索引作为整体重建. so,重建语 ...

  6. SQL Server 调优系列进阶篇 - 如何重建数据库索引

    随着数据的数据量的急剧增加,数据库的性能也会明显的有些缓慢这个时候你可以考虑下重建索引或是重新组织索引了. DBCC SHOWCONTIG('表名') 可以查看当前表的索引碎情况. 重建索引 方法一: ...

  7. 池建强 博客 Mac使用技巧 第一季

    第1天: 今天推送的Mac技巧: 使用OS X,我们可以充分利用系统提供的多个Space,把不同的程序放到不同的Space,让我们的系统更有扩展性.如何增加Space呢?四指上推,在桌面的最上方会出现 ...

  8. Mac 为啥不显示图片尺寸,点了显示简介也不显示~???

    这个问题困扰我好几天,然后今天想法子解决,我这个强迫症患者是真的难受,不能直接一目了然的,每次都要ps打开图片去看,真的好心累???? 网上98%的解决方法如下: 在 Finder 中,按快捷键 co ...

  9. 第二部分_Mac技巧

    原文是"池建强"的微信文章,公众号为"MacTalk" 第五十一天 mdfind是一个非常灵活的全局搜索命令,类似Spotlight的命令行模式,可以在任何目录 ...

随机推荐

  1. QQList列表功能实现

    1.模型 @class FriendsModel; @interface GroupModel : NSObject @property (nonatomic, copy) NSString *nam ...

  2. Disqus评论框改造工程-Jekyll等静态博客实现Disqus代理访问

    文章最初发表于szhshp的第三边境研究所转载请注明 关于博客评论 六月多说挂了,地球人都知道. 倡言.云跟帖.来必力都很烂,地球人都知道. 转Disqus的都是人才. Disqus使用中遇到的问题 ...

  3. MVC 之 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后的丢失

    在MVC3中我们这样引用资源文件: <link href="@Url.Content("~/Content/Site.css")" rel="s ...

  4. 使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库(转)

    1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantc ...

  5. 忘记MySQL root密码重置MySQL root密码

    (1)停止mysql# /etc/init.d/mysql stop(2)以不检查权限的方式启动# mysqld --skip-grant-tables &(3)登录mysql修改root用户 ...

  6. Additional information: 对 COM 组件的调用返回了错误 HRESULT E_FAIL

    1:Winform应用通过mshtml操作IE浏览器DOM时,第一次运行正常,点击第二次时错误信息如下 A first chance exception of type 'System.Runtime ...

  7. ACID、Data Replication、CAP与BASE

    ACID 在传数据库系统中,事务具有ACID 4个属性. (1) 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行. (2) 一致性(Consiste ...

  8. Android 手把手带你玩转自己定义相机

    本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 概述 相机差点儿是每一个APP都要用到的功能,万一老板让你定制相机方不方?反正我是有点方. 关于相机的两天奋斗总结免费送给你. ...

  9. hdu4403A very hard Aoshu problem 线段树

    //给一个长度为大于2小于15的字符串 //在当中间加'+'或'='使得其成为一个等式的方法的个数 //枚举等号位置.暴力搜索加号加的位置 #include<cstdio> #includ ...

  10. jQuery Easy UI Tooptip(提示框)组件

    我们都知道DOM节点的title属性.Tooptip组件就是比較强大的title,它能够自由的设置自己的样式.位置以及有自己相关的触发事件. 演示样例: <!DOCTYPE html> & ...