几年间,我的$HOME
目录中出现了很多隐藏的文件和目录。
我想不断删除不需要的。
如何找出哪些应用程序创建了这些隐藏文件和目录。
我如何确保删除隐藏的文件和目录是安全的,并且不会丢失任何重要的内容,并且依赖它们的内容不会停止工作?
mik*_*erv 15
您可以暂时取代它们。
cd ~
mkdir .trash
find . ! -name . -prune ! -type d -atime +365 -exec \
sh -c 'touch -a -- "$@"
mv -- "$@" ~/.trash
' -- {} +
Run Code Online (Sandbox Code Playgroud)
这将找到您$HOME
目录中的所有文件- 不会递归到子目录中 - 一年未访问过。它会将所有这些的访问时间更新为现在,然后将所有这些都移动到名为.trash
. 如果您在运行它和决定开始删除旧文件之间遇到任何问题,~/.trash
那么您可以尝试将其中一些移回,看看是否有任何您放入垃圾箱的原因。
如果您是系统的 root,您可以使用审计内核功能来获得有关谁/何时/什么访问/创建/修改文件的最大信息。有关 debian 风格的示例,请参阅本教程
如果没有 root 访问权限,您可以使用 crontab 或带有无限循环+睡眠的脚本在您的主目录中运行lsof和 grep 文件。请参阅 lsof 的联机帮助页。但是,它只会显示在您启动 lsof 时打开了文件描述符的应用程序。如果应用程序打开一个文件,编辑它,然后关闭它,您将不会在 lsof 中看到此更改。
像这样的单线应该可以完成这项工作: lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
另一种方法是使用inotify 内核 API来检查文件何时被访问。唉,这是一个异步系统,你不会有诸如“什么应用程序”、“确切时间”、“什么用户”之类的详细信息。您只会收到有关“此文件已被修改/访问...”的回调。一些应用程序(Inotify、FAM、gamin)为您提供对 api 的简单访问
我建议使用Bleachbit,这是一个交互式 GUI 程序,用于消除垃圾。您可以从发行版的存储库安装它,也可以从FlatHub和漂白位.org获取它。
mikeserv 建议查找atime
并删除长时间不使用的文件(前提是您没有将系统配置为不使用 atime),但这相当冒险(看看tmpreaper
您是否想这样做)。
归档时间: |
|
查看次数: |
5121 次 |
最近记录: |