如何使用 Linux 计算驱动器中的文件夹数量?

如何使用 Linux 计算驱动器中的文件夹数量?

我需要整理一个外部硬盘,使其上的文件夹不超过 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 数量降序排序。

相关内容