有效缓解及清理C盘的10种方法集锦(硬链接、CCleaner、mklink)
本文于2021年1月25日由AlvinCR更新
Win10使用多种方法清理C盘(包括硬链接、ccleaner等等)
C盘下载太多软件了,实在是没地方放新的应用程序了,被迫清理+1
网上有不少的清理C盘的教程,大多是多于小小白而言有效,我个人并不打算采用他们的方法,虽然他们有的是用心在写,但是于我而言,他们的方法各有各的问题。
文章导引
一:检测
一开始不忙着清理,首先要了解一下什么需要清理,否则根本不知道真正需要清理的是什么,只能跟着别人后面走。
通过上面图片可以看出在我硬盘中占用最大的是UE4、Anaconda、夜神模拟器、vmware虚拟机,以前已经写过关于夜神占用清理的方法及问题了,如果同样使用夜神模拟器的可以在alvincr.com搜索一下。
虽然这些软件占用空间很大,但是并不能直接卸载,因为他们还很有用,这样就只能采用两种方法解决了:一是清理缓存,二是更改位置。个人选择将他们移动到机械硬盘中,但是移动并不是直接粘贴,这样会导致注册表等路径失效。
对于UE4这样超大体量的软件,我建议还是重装一下比较好,虽说硬链接理论上没问题,但谁知道win会不会突然出现BUG呢。
二:清理
方法零:使用Free Move
使用此方法将安装文件移动到机械硬盘中,使用方法是选择需要移动的文件夹,然后选择移动位置,这里alvincr测试发现选择的文件夹要是原文件夹(例如Git),转移的目录不需要设置Git目录,直接设置将Git放置的位置即可。
AlvinCR认为实现原理:个人查看了一下文件原来的位置,发现多了一个引向新文件夹的硬链接,通过win+S搜索,能够直接访问程序,如果不这样就会提示文件不存在。
此外为了稳妥起见,移动anconda进行测试,发现路径识别并没有什么问题,anconda和spyder都能够正常运行。
但是使用此方法最好是将文件移动到一个稳妥的硬盘中,不要轻易更改磁盘路径,以免出错。
方法零-1: Mklink
使用上面的软件Free Move就能实现硬链接的效果,无需在CMD中使用Mklink进行硬链接,如果进行软连接的话直接剪切然后创建快捷方式即可,这个命令在linux下比较好用,在win下就比较鸡肋了。
实现命令: mklink /d “X” “Y”
这里的X,Y都为路径,x为原文件夹位置,y为移动后的位置。
1 参数:
[[/D] | [/H] | [/J]] Link Target/D 创建目录符号链接。默认为文件符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径(相对或绝对)。
2 相关知识
2.1 硬链接
执行命令 mklink /H link_name target_name
在系统中占用的空间与源文件相同,但在系统中引用的是相同的对象(不是拷贝)
在操作系统层解析(!?)
图标和创建快捷方式的图标不同(没有快捷方式的小箭头)
移除源文件不会影响硬链接
移除硬链接不会影响源文件
如果源文件被删除,它的内容依然通过硬链接存在
硬链接文件的任何更改都会影响到源文件
文件大小, 占用空间, 创建和修改时间跟原原文件一样
可以在cmd下运行硬连接(假如链接的是程序)
https://blog.csdn.net/guyue35/article/details/49761347
硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。–Baike
2.2 符号链接
软链接(符号链接),在Windows系统中就是所谓的快捷方式。与硬链接不同,软链接是普通文件,但是数据块的内容有些特殊。存储在文件的用户数据块中的内容是另一个文件。路径名可以通过这种方式快速定位软链接指向的源文件实体。软链接可以同时链接文件或目录。
软连接在解决空间不足方面有很好的效果,但是软连接的问题在于你所链接的内容最好是能稳定存在的硬盘,如果是U盘那就不合适了,因为软链接以存放另一个文件的路径的形式存在,而硬链接以文件副本的形式存在。
方法一:CCleaner
使用CCleaner能够清理的文件虽然不多,但是好在能够删除大部分无用的文件,不过大头还是需要靠自己手动进行清理
方法二:使用磁盘清理
此方法虽然可以清理一部分内容,但是大多数文件根本清理不掉,最主要的是用来清理Win更新文件以及回收站,而这两项手动也能清理。
方法三:系统自带
设置-应用
找到想移动的应用,点击移动即可更改位置
但是此方法只能够移动从应用商店安装的应用,其它应用则没有这个选项,如下:
三:不建议方法:
请注意这里的不建议方法是对于AlivnCR的情况而言的,并非所有选项都不适合大家。
1 存储清理
可能会有效,但是感觉没太大用处,回收站的内容我都是重新确认一下是否有用,然后手动清理,临时文件我直接用everything进行搜索,然后手动删除。
2 设置新内容的保存位置
这个选项因人而异,对于不怎么会自己设置路径的朋友很有用,但是我所有软件我都会手动分类设置安装路径,基本上将应用程序放在C盘固态中,因此对我无效。
3 虚拟内存
右键点击桌面电脑图标,在“属性”界面中选择“高级系统设置”进入。在属性窗口中点击“设置”,随后切换至“高级”选项,最后点击“更改”。
虚拟内存救不了我500G的C盘,如果没有手动设置,任他占用也不会超过10G,这还是在占用极为严重的情况下,正常来说占用1-3G。
4 Windows.edb
Windows.edb文件是为了优化系统搜索速度而建立的文件,我的Windows.edb文件并不大,可能是其它软件清理过了。
方法:win键+R,输入:services.msc打开系统服务管理。找到windows search服务,右键属性,启动类型选择【禁用】,最后点击应用生效。
5 休眠文件
个人经常使用休眠功能,虽然占用10G,但是并不愿意清理
清理方法:进入cmd命令提示符,输入powercfg hibernate size 40 ,这里的40可以自行更改,设为x则会让休眠文件的大小保持在系统内存大小的x%
6 划分硬盘
由于我固态就只有500G,全部划给C盘了,C盘从一开始的100G到250G,一直到现在的500G都不够用,这个硬盘没有空间可划了。
划分方法:使用系统自带硬盘管理工具或是使用DiskGenius进行划分。
附:
Linux下的软硬两种链接对比:
以下内容来自:https://www.jianshu.com/p/dde6a01c4094
———————————————-
下面我们进入正题,来探讨一下软硬两种链接到底有什么区别?
首先,从使用的角度讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。
那区别在哪呢?在底层的原理上。
为了解释清楚,我们首先在自己的一个工作目录下创建一个文件,然后对这个文件进行链接的创建:
$ touch myfile && echo “This is a plain text file.” > myfile
$ cat myfile
This is a plain text file.
现在我们创建了一个普通地不能再普通的文件了。然后我们对它创建一个硬链接,并查看一下当前目录:
$ ln myfile hard
$ ls -li
25869085 -rw-r–r– 2 unixzii staff 27 7 8 17:39 hard
25869085 -rw-r–r– 2 unixzii staff 27 7 8 17:39 myfile
在 ls 结果的最左边一列,是文件的 inode 值,你可以简单把它想成 C 语言中的指针。它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。
你也看到了,这两个文件就如同一个文件一样,inode 值相同,都指向同一个区块。
然后我们修改一下刚才创建的 hard 链接文件:
$ echo “New line” >> hard
$ cat myfile
This is a plain text file.
New line
可以看到,这两个文件果真就是一个文件。
下面我们看看软链接(也就是符号链接)和它有什么区别。
$ ln -s myfile soft
$ ls -li
25869085 -rw-r–r– 2 unixzii staff 36 7 8 17:45 hard
25869085 -rw-r–r– 2 unixzii staff 36 7 8 17:45 myfile
25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 soft -> myfile
诶,你会发现,这个软链接的 inode 竟然不一样啊,并且它的文件属性上也有一个 l 的 flag,这就说明它与之前我们创建的两个文件根本不是一个类型。
下面我们试着删除 myfile 文件,然后分别输出软硬链接的文件内容:
$ rm myfile
$ cat hard
This is a plain text file.
New line
$ cat soft
cat: soft: No such file or directory
之前的硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。
然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。
为验证这一猜想,我们再向这个软链接写点东西:
$ echo “Something” >> soft
$ ls
hard myfile soft
可以看到,刚才删除的 myfile 文件竟然又出现了!这就说明,当我们写入访问软链接时,系统自动将其路径替换为其所代表的绝对路径,并直接访问那个路径了。