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

Dea*_*her 27 linux command-line

我需要组织一个外部硬盘驱动器,使其上的文件夹不超过 500 个。Ubuntu 的“属性”窗格仅显示文件数,而不显示文件夹数。

是否有一个简单的命令行可以告诉我子目录的数量?

我需要递归计算,驱动器是安装在/media/MUSIC/. 它适用于汽车立体声系统,其文档说它只能读取前 500 个文件夹。

qua*_*ote 37

  • 查找所有文件夹,包括子目录:

    find /mount/point -type d | wc -l
    
    Run Code Online (Sandbox Code Playgroud)
  • 查找根目录下的所有文件夹(不包括子目录):

    find /mount/point -maxdepth 1 -mindepth 1 -type d | wc -l
    
    Run Code Online (Sandbox Code Playgroud)

    -maxdepth 1界限的命令到当前目录(即,它禁止递归); 的 -mindepth 1使之不包括顶层目录(安装点)本身。

  • @Dean:我想你只需要使用`find /path -not -iname '*.mp3' | wc -l` 过滤 MP3,或同时获取 MP3 和 WAV 使用 `find /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l` (2认同)

小智 24

导航到您的驱动器(可以在那里打开终端窗口)并简单地执行:

ls -lR | grep ^d | wc -l
Run Code Online (Sandbox Code Playgroud)


Eri*_*und 5

换行符是目录名称中的有效字符。我建议find为找到的每个目录打印一个字符,然后wc计算这些字符:

find /mount/point -mindepth 1 -type d -printf 'a' | wc -c
Run Code Online (Sandbox Code Playgroud)

指定-mindepth 1以避免计算挂载点目录本身。