我见过的一种解决问题的方法是建议使用者将全部的数据碎屑建立一个文件集合的总结报告或"概况",来报告诸如全部的文件数量;最老的,最新的,最大的文件;并统计谁拥有这些文件等数据。若是有人看到五年前的一个包含五十万个文件的文件夹,他们可能会去删除哪些文件 -- 或者,至少会归档和压缩。主要问题是太大的文件夹会令人担忧误删一些重要的东西。若是有一个描述文件夹的方法能帮助显示文件的性质,那么你就能够去清理它了。bash
当我准备作 Unix 文件系统的总结报告时,几个有用的 Unix 命令能提供一些很是有用的统计信息。要计算目录中的文件数,你可使用这样一个 find 命令。spa
$ find . -type f | wc -l 187534
虽然查找最老的和最新的文件是比较复杂,但仍是至关方便的。在下面的命令,咱们使用 find 命令再次查找文件,以文件时间排序并按年-月-日的格式显示,在列表顶部的显然是最老的。code
在第二个命令,咱们作一样的,但打印的是最后一行,这是最新的。orm
$ find -type f -printf '%T+ %p\n'| sort | head -n 1 2006-02-03+02:40:33./skel/.xemacs/init.el $ find -type f -printf '%T+ %p\n'| sort | tail -n 1 2015-07-19+14:20:16./.bash_history
printf 命令输出 %T(文件日期和时间)和 %P(带路径的文件名)参数。排序
若是咱们在查找家目录时,无疑会发现,history 文件(如 .bash_history)是最新的,这并无什么用。你能够经过 "un-grepping" 来忽略这些文件,也能够忽略以.开头的文件,以下图所示的。emacs
$ find -type f -printf '%T+ %p\n'| grep -v "\./\."| sort | tail -n 1 2015-07-19+13:02:12./isPrime
寻找最大的文件使用 %s(大小)参数,包括文件名(%f),由于这就是咱们想要在报告中显示的。it
$ find -type f -printf '%s %f \n'| sort -n | uniq | tail -1 20183040 project.org.tar
统计文件的全部者,使用%u(全部者)class
$ find -type f -printf '%u \n'| grep -v "\./\."| sort | uniq -c 180034 shs 7500 jdoe
若是文件系统能记录上次的访问日期,也将是很是有用的,能够用来看该文件有没有被访问过,比方说,两年以内没访问过。这将使你能明确分辨这些文件的价值。这个最后访问(%a)参数这样使用:grep
$ find -type f -printf '%a+ %p\n'| sort | head -n 1 FriDec1503:00:302006+./statreport
固然,若是大多数最近访问的文件也是在好久以前的,这看起来你须要处理更多文件了。方法
$ find -type f -printf '%a+ %p\n'| sort | tail -n 1 WedNov2603:00:272007+./my-notes
要想井井有条,能够为一个文件系统或大目录建立一个总结报告,显示这些文件的日期范围、最大的文件、文件全部者们、最老的文件和最新访问时间,能够帮助文件拥有者判断当前有哪些文件夹是重要的哪些该清理了。