我需要整理一个外部硬盘,使其上的文件夹不超过 500 个。Ubuntu 的“属性”窗格仅显示文件数,而不显示文件夹数。
是否有一个简单的命令行可以告诉我子目录的数量?
我需要递归计数,驱动器是安装在 的外部硬盘/media/MUSIC/
。它用于汽车音响系统,其文档说它只读取前 500 个文件夹。
答案1
导航到您的驱动器(可以在那里打开一个终端窗口)并简单执行:
ls -lR | grep ^d | wc -l
答案2
查找所有文件夹,包括子目录:
find /mount/point -type d | wc -l
查找根目录中的所有文件夹(不包括子目录):
find /mount/point -maxdepth 1 -mindepth 1 -type d | wc -l
将
-maxdepth 1
命令限制在当前目录中(即禁止递归);-mindepth 1
导致它不包括顶级目录(挂载点)本身。
答案3
换行符是目录名称中的有效字符。我建议让find
打印找到的每个目录的一个字符,然后计算wc
这些字符的数量:
find /mount/point -mindepth 1 -type d -printf 'a' | wc -c
指定-mindepth 1
以避免计算挂载点目录本身。
答案4
我发现du --inodes
它很有用,但我不确定du
它需要哪个版本。在 Ubuntu 17.10 上,以下内容有效:
du --inodes # all files and subdirectories
du --inodes -s # summary
du --inodes -d 2 # depth 2 at most
结合并按| sort -nr
包含的 inode 数量降序排序。