+++
title = "乱七八糟:垃圾清理的艺术"
date = 2023-11-19

[taxonomies]
tags = ["乱七八糟"]
+++

前言 在从前的机械硬盘时代，由于硬盘空间小，且没有时常清理垃圾文件，常常导致硬盘空间严重不足；特别是在以 Windows 平台为代表的 C/D盘 体系下。那么，我们常说的垃圾清理，释放硬盘空间，到底是在清理什么？哪些文件可以被清理？
<!-- more -->
## 垃圾清理

通常指的是清理计算机硬盘上的`不必要或临时`文件，以释放硬盘空间。这些文件包括：

1. **临时文件：** 程序在运行时会生成临时文件，以帮助它们完成任务。这些文件在任务完成后不再需要，占据了硬盘空间,却没有被回收。
2. **缓存文件：** 许多程序比如浏览器，会在本地存储缓存数据，以加快后续访问速度。但是，这些缓存文件可能会占据大量空间，尤其是在长时间不清理的情况下，这里点名国产的微信和QQ。

> 注意,清理缓存文件可能意味着加载速度变慢或需要重新下载，耗费流量，视情况而清理。


3. **日志文件：** 许多应用程序会生成日志文件来记录其活动和错误。这些日志文件可能会积累并占用大量空间，尤其是在长时间不清理的情况下。

> 特别是C盘上的log文件，因为它们记录了系统和应用程序的运行情况，可能会变得相当庞大。因此，定期清理C盘中的log文件是维护系统性能和释放磁盘空间的重要步骤之一。

- **备份文件：** 如果您的系统或软件定期创建备份或快照，旧版本备份可能会占用大量空间。您可以定期清理旧版本备份以释放空间。
- **大型文件：** 有些应用程序可能会生成大型临时数据文件，如媒体编辑软件的临时视频或音频文件。这些文件在任务完成后可能会被遗留，占据大量空间。

> 例如PS加载的工作文件，放C盘的话会占用大量空间。

4. **卸载残余：** 在卸载应用程序时，有时候可能会留下一些残余文件，如配置文件、注册表项等，这些文件可能会继续占用硬盘空间，并且在一定程度上影响系统的性能。定期清理这些卸载残余是维护系统健康的一部分。

> 还记得删除牛马软件时的挽留选项吗？里面往往藏着“保存个人配置”。


5. **重复文件：** 在计算机系统中，有时候可能会出现重复的文件，这些文件可能是因为用户错误地复制或下载了多个副本，也可能是由于应用程序或系统错误导致文件重复。这些重复文件不仅占用了宝贵的存储空间，而且也增加了文件管理的复杂性。

> 这里再次点名微信，同样一个文件能保存好几次，且不给出具体的存放路径，怪不得动辄十几个G,尾大不掉，真的离谱！

6. **回收站文件：** 删除文件时，它们通常不会立即从硬盘上删除，而是移动到回收站。清空回收站可以释放这些被删除文件所占据的空间。

> 注意，尽管清空回收站会立即释放硬盘空间，但实际上删除的文件并不会立即被擦除，而是被标记为可以被覆写的空间。在某些情况下，专业的数据恢复软件可能仍然可以找回部分被删除的文件。因此，如果希望永久删除文件而不被恢复，需要使用专门的文件删除工具,来覆盖文件内容以确保无法恢复。

7. **下载文件夹：** 下载文件夹可能会积累大量临时文件、安装程序、文档和媒体文件。定期清理下载文件夹可以帮助释放硬盘空间。
8. **不再使用的程序：** 有时候，安装的一些程序你已经不再使用或需要它们。卸载这些程序可以释放相关的硬盘空间。
9. **浏览器插件与扩展：** 未使用的浏览器插件和扩展可能会占用不必要的资源和空间。删除不再需要的插件和扩展可以帮助优化浏览器性能并释放空间。
10. **安装程序和更新文件：** 在安装程序或更新软件时，临时安装文件可能会留在系统中。这些文件通常可以安全删除，因为安装程序已经完成。

> 例如安卓上的安装包（APK文件）和下载安装后的EXE文件。


需要注意的是，往往有许多牛马软件安装目录和文件目录不规范，或者是在安装时没有设定好，会产生大量垃圾文件；这时就需要垃圾清理工具或者手动遍历文件夹（注意隐藏文件夹）。

## 垃圾清理软件

### Windows 平台：

1. **[WizTree](https://diskanalyzer.com/)：** WizTree是一款功能强大清理垃圾文件/在Windows上找到大文件以释放磁盘空间的首选程序...超级易于使用，快速闪电.
2. **Disk Cleanup（磁盘清理）：** Windows 自带的磁盘清理工具，可以帮助您清理不必要的系统文件，包括临时文件、回收站等。
3. **[BleachBit](https://github.com/bleachbit/bleachbit)：** BleachBit 是一款开源的系统清理工具，可以帮助您清理系统中的临时文件、缓存、浏览器历史等。

### macOS 平台：

1. **CleanMyMac X：** CleanMyMac X 是一款功能强大的系统优化工具，可以帮助您清理系统中的垃圾文件、优化性能，并提供了其他的实用工具。
2. **Onyx：** Onyx 是一款免费的 macOS 系统维护和优化工具，可以帮助您清理系统缓存、日志文件、临时文件等。
3. **AppCleaner：** AppCleaner 是一款简单易用的应用程序卸载工具，可以帮助您彻底清理 macOS 系统中的应用程序及其相关文件。

### Linux 平台：

1. **BleachBit：** BleachBit 不仅适用于 Windows，也提供了 Linux 版本，可以帮助您清理系统中的临时文件、缓存、浏览器历史等。
2. **Stacer：** Stacer 是一款开源的系统优化和监控工具，提供了垃圾清理、系统管理、系统监控等功能，适用于多种 Linux 发行版。
3. **Sweeper（KDE 扫除者）：** Sweeper 是 KDE 桌面环境的一部分，提供了简单易用的垃圾清理功能，可以帮助您清理系统中的临时文件、缓存等。

## Arch linux 清理
1. **缓存清理**:

   - `sudo pacman -Sc`: 清理包缓存，删除已安装的但不再需要的软件包。
   - `sudo pacman -Scc`: 进一步清理所有包文件，包括已下载的包。

2. **系统日志**:

   - `/var/log` 目录下包含系统日志文件。你可以删除较旧的日志文件，或者使用日志轮换工具，如 `logrotate`。

3. **临时文件**:

   - `/tmp` 目录下包含临时文件。你可以通过 `sudo rm -rf /tmp/*` 清理它们。

4. **缓存文件**:

   - 一些应用程序会在 `~/.cache` 目录下存储缓存文件。你可以检查该目录并删除不再需要的文件。

5. **AUR 缓存**:

   - AUR 辅助工具（如 `yay`）会在 `~/.cache/yay` 目录下存储构建和下载的软件包。你可以清理这些文件。

6. **旧内核**:

   - 如果你安装了多个内核版本，你可以删除不再需要的旧内核。首先使用 `uname -r` 查看当前内核版本，然后使用 `sudo pacman -Rns linux-older-kernel` 删除不需要的版本。

7. **不再使用的配置文件**:

   - 检查家目录下的隐藏文件，如 `~/.config`，并删除不再需要的配置文件。

8. **Docker日志文件**:  
   使用 `docker ps -a` 命令查找你感兴趣的容器的 ID。

   ````
   docker ps -a
   ````
   进入容器的日志目录，路径类似于 `/var/lib/docker/containers/<container-id>/`。

   ````
   cd /var/lib/docker/containers/<container-id>/
   ````
   使用命令清理或删除日志文件。你可以删除所有日志文件，或者只删除特定的日志文件。

   ````
   # 删除所有日志文件
   rm *.log
   
   # 删除特定日志文件（例如 stdout 和 stderr）
   rm *-json.log
   ````

## **Arch Linux 安装备份**

你可以定期备份 Arch Linux 安装的软件列表，以便在需要时轻松还原。

````
pacman -Qqe > package-list.txt
````

这将列出所有已安装的软件包，并将其保存到文件 `package-list.txt` 中。在还原系统时，你可以使用以下命令：

````
sudo pacman -S --needed - < package-list.txt
````

## 后记

垃圾文件的产生总是无可避免，这是因为随着使用时间的流逝，系统的熵值也在增大；生命以负熵为食，同样的为系统清理垃圾也是逆熵的一部分。在你的生命中会有许多电子设备，但它们往往只有你一任主人，请善待它们！