热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

还我一个清洁的MacOS(怎样完全删除不需要的App)

当初我买MacBookAir的时刻专程挑选了高配版本,硬盘空间是128G(2011年的骨董机械),在最最先的1-2年内运用还不错,厥后发明愈来愈力不从心,为了尽量腾出空间,险些把一

当初我买MacBook Air的时刻专程挑选了高配版本,硬盘空间是128G(2011年的骨董机械),在最最先的1-2年内运用还不错,厥后发明愈来愈力不从心,为了尽量腾出空间,险些把一切的照片、视频和PDF文档都移到了云上,也经常常使用CleanMyMac等东西举行清算,但照样发明空间被一些已卸载的App蚕食,既然没有更好的计划,那就自身写一个东西来清算吧。

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

前几节内容是比较烦琐的手艺引见,不感兴趣的同砚能够直接跳到东西的运用那一节

App最喜欢的几个目次

Mac和Windows操纵体系有一个很大的差别,大部份App是没有装置顺序的,平常下载下来就是一个dmg文件,解开以后直接将App拖到运用顺序目次下就可以够了,所以给人觉得卸载也就是将App拖到废纸篓然后清空。假如然如许做就大错特错,纵然一个最简朴的App都邑在下面几个目次中或多或少留下留念,这些目次平常有:

  • ~/Library

  • ~/Library/Application Support

  • ~/Library/Application Support/CrashReporter

  • ~/Library/Caches

  • ~/Library/Containers

  • ~/Library/LaunchAgents

  • ~/Library/Preferences

  • ~/Library/PreferencePanes

假如一个顺序是经由过程pkg体式格局装置,或者是在第一次运转时要求管理员权限,那平常还会在以下几个目次中留点留念:

  • /Library

  • /Library/Application Support

  • /Library/Extensions

  • /Library/LaunchAgents

  • /Library/LaunchDaemons

  • /Library/PreferencePanes

  • /Library/Preferences

以上都照样只是列出了部份,差别的App由于须要还会在其他目次中装置一些文件,比方字处理软件平常会在/Library/Fonts下面装置字体,有些扩大组件会放在/Library/ScriptingAdditions下面。

限于篇幅,我不能逐一引见一切目次的内容,选几个重点的目次大概说一下:

~/Library/Application Support

这个目次能够说是App最主要的文件目次,一些App自身并不大,然则须要的支撑组件和内容异常多,特别是采纳第三方插件和缓存收集内容的软件,比方我用的Dash,自身的大小只需24MB摆布,然则由于常常阅读材料,所以缓存了许多收集内容,使得它的Support目次达到了1.37GB!可想而知,假如只是将App扔到废纸篓,险些不会节约任何空间。
《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

~/Library/Preferences

这个目次下保留的是App设置,平常来讲,轻微有点范围的软件都有自身的设置信息,放在这里的文件虽然占空间不多,然则清算掉照样有优点的,比方有些App不能一般事情,纵然卸载重装也不可,每每就是设置文件出错了,把这里清算掉以后再重装就会有比较好的效果。

~/Library/Containers

这个目次关于App Store上下载的软件来讲,是最主要的一个目次,由于Apple的限定,AppStore的软件都在沙箱中运转,每一个软件在沙箱都有自身的一个完全空间,关于App来讲,它认为自身在一个一般的目次体系中运转,但实际上不是,操纵体系重定位了读写位置到沙箱当中。
如果卸载软件的时刻,只是简朴的在Launchpad中点一下叉来删除,那不晓得又有若干空间稀里糊涂地消逝了,我曾用这类体式格局卸载了网易云音乐,效果厥后才发明,整整417MB的空间不见了……
《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

~/Library/LaunchAgents

Mac上的随机启动体式格局之一,熟习OS X操纵体系的同砚应当马上想到了launchctl,这里就是寄存启动设置文件的处所,大部份App只会往这里写启动信息,请神容易送神难,要送神,只需用第三方东西或是自身手动清算了,另有,LaunchAgents 和 LaunchDaemons 是有一些区分的,二者虽然都是随机启动,细致对照请看LaunchAgents VS LaunchDaemons

本东西的概述

直到如今我还在想,如果用Cocoa来写这个东西的话,顺序会小许多,如今这个顺序压缩包有40+MB,实在绝大部份都是Electron、React的框架库,真正的代码也就几个文件,加起来不到1M大小。而之所以挑选用Javascript来做,实在就是想考证一下React开辟一个桌面运用究竟会如何,Javascript是否是有一统江湖的本领?

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

用Javascript最大的挂念或许是机能题目,顺序虽然难度不大,也有几个运算比较麋集的处所,一是plist信息的剖析,二是正则表达式。我将plist剖析放到外部库去做了,正则表达式依然用Google的V8引擎,现在来看还行。

顺序的I/O比较多,须要频仍统计文件占用空间大小,查找相干文件,读取文件信息,虽然Javascript的最大优点是异步操纵,然则在统计出效果之前,界面能做出再多的相应也没有什么意义,因此在有些处所,我没有运用异步操纵,如果你觉得界面有点卡,那是我的缘由,不是React的错:)

再给人人引荐一下Mac体系上自带的AppleScript,这个是Mac上的瑞士军刀,能和Windows上的Powershell有得一比,我在这个软件中末了的清算事情实质上就是经由过程AppleScript来完成的,比方清算事情首先要封闭目的顺序,你如果自身编程盘算如何完成?罗列体系历程然后kill?用AppleScript就可以异常文雅地完成,比方你翻开Safari,再同时开一个终端窗口,然后在终端中输入

osascript -e 'quit app "safari"'

名字的因由

来自于同名影戏《Total Recall》,奎德在一次假造体验以后,倏忽发明自身本来不是一个默默无闻的工人,而是一个超等奸细,那自身究竟是什么呢?或许真正的自身永久也找不回来了,然则最少不是如今如许胡里胡涂。

我也想借这个意义示意纵然经由过程勤奋清算,也不一定能复原到最初的状况,但最少不会这么蹩脚。

东西的运用

这个彷佛没有什么太多能够说的了,我只是对照了和CleanMyMac的清算效果,最少,在大部份情况下,我觉得还不错。

卸载百度云的对照

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

能够清楚地看到,CleanMyMac没有找到百度云的Application Support目次,另外,只找到了登录项,没有找到启动项和启动文件。

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

Total Recall不仅找到了CleanMyMac一切的内容,还找到了Application Support,这里有1.14MB空间,另外还找到了LaunchDeamons内里的启动项和启动文件,还发明了com.baidu.netdiskmac.BDYunFinderInstaller这么一个鬼……

比较一下卸载AppStore上的App

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

《还我一个清洁的Mac OS(怎样完全删除不需要的App)》

CleanMyMac列出了一大堆觉得挺吓人的,仔细看才发明实在都是Containers\com.tencent.xinWeChat这个目次内里的子目次,还拿一个体系暂时目次来凑数(电脑重启后体系暂时目次都邑清空),卸载的时刻实在只需删除沙箱目次就高枕无忧。

存在的不足

  • 有一类软件是以Package体式格局宣布的,内里有庞杂的装置步骤,比方Microsoft Office 2016 for Mac如许的,关于这类软件,须要剖析的内容比较多,盘算在完善后将Package卸载整合

  • 软件界面很大略,一是不大会玩CSS和HTML规划,二是首次运用React,前端高手能够指导我一下?

参考内容

  • 《深切剖析MAC OS X & IOS操纵体系》 这本书关于想相识Mac体系的人来讲是不贰之选,值得具有

  • Information Property List Key Reference App里最主要的文件Info.plist的引见,开辟必备

  • Electron 假如盘算用Electron构建一个桌面App,必需从这里最先

  • React React的官方网站,虽然我的界面做得挺丢脸,那是由于我还不怎样会玩css

  • Total Recall 这……


推荐阅读
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • Linux 程序设计学习笔记----动手编写makefile文件
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 设计完成后,将所完成的作品交由老师检查。管理进程接收申请进入的信号,在消息队列中取下申请进入队列的用户进程的信息,针对当前临界区状态,写一个回馈信息 ... [详细]
author-avatar
总会有办法的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有