因此,在许多情况下,我想知道我的磁盘空间有多少被什么使用,所以我知道要摆脱什么、转换为另一种格式、存储在其他地方(例如数据 DVD)、移动到另一个分区等。在这种情况下,我正在查看来自 SliTaz Linux 的 Windows 分区。可启动媒体。
在大多数情况下,我想要的是文件和文件夹的大小,为此我使用基于 NCurses 的 ncdu :
但在这种情况下,我想要一种方法来获取与正则表达式匹配的所有文件的大小。 .bak 文件的示例正则表达式:
.*\.bak$
我如何获得这些信息,考虑到带有核心 GNU 实用程序的标准 Linux 或 BusyBox ?
编辑:输出旨在被脚本解析。
最佳答案
我建议类似: find 。 -regex '.*\.bak' -print0 | du --files0-from=- -ch |尾 -1
一些注意事项:
find
的 -print0
选项和 du
的 --files0-from
选项可避免出现问题文件名中有空格./dir1/subdir2/file.bak
,而不仅仅是file.bak
,所以如果你修改它,请考虑到这一点h
标志为 du 生成“人类可读”格式,但如果您想解析输出,最好使用 k
(总是使用千字节)tail
命令,您将另外看到特定文件和目录的大小旁注:FileLight 是一个很好的 GUI 工具,用于找出谁占用了您的磁盘空间。 .它不执行正则表达式,但对于查找阻塞磁盘的大目录或文件非常方便。
https://stackoverflow.com/questions/9485981/