今天同事备份数据到NAS,但感觉备份有问题,因为文件过多,所以决定通过命令的方式统计文件夹下的文件数量,来初步判断备份是否完整。而原文件在Window下,而 NAS 是Liunx操作系统,故需要通过不同的命令来统计文件数量。
Window 统计文件数量
首先,来统计原文件数量。找了半天,发现dir命令就可以用于统计。
1 
  | dir /b /a-d | find /v /c "&#@"  
  | 
怎么文件数量为0? 原来上面命令仅仅是统计当前目录下的文件数,而不包括子目录,那么如何也包含子目录的文件呢?
原来只需要再添加参数/s即可。
1 
  | dir /s /b /a-d | find /v /c "&#@"  
  | 
当然,这里关键内容是find /v /c "%#@"。
Window 统计文件和目录数量
只需要去掉选项/a-d 来包含所有类型。
1 
  | dir /s /b | find /v /c "&#@"  
  | 
Liunx 统计文件数量
因为是NAS,故可以将Liunx 共享目录映射到 Window 下,从而使用 Windows 命令统计。下面将的是直接使用Liunx命令来统计。
直接统计某文件夹下文件数量
统计文件夹下所有文件数量
命令ls -lR表示列表输出该目录下文件信息,R表示包括子目录,同时列出的文件包括目录、链接、设备文件等)
命令grep "^-"表示对结果进行过滤,只保留一般文件,如果只保留目录就是 ^d。
当然你也可以按文件名过滤统计,统计 /var/www 目录下所有html 文件数量:
1 
  | ls -l "/var/www"|grep "html"|wc -l 
  | 
Liunx 统计目录数量
统计文件夹下目录数量
统计文件夹下目录的个数,包括子文件夹里的 ls -lR|grep “^d”|wc -l
附录- Window DOS Dir 命令信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 
  | > dir /? 显示目录中的文件和子目录列表。 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]   [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]   [drive:][path][filename]               指定要列出的驱动器、目录和/或文件。   /A          显示具有指定属性的文件。   属性         D  目录                R  只读文件                H  隐藏文件            A  准备存档的文件                S  系统文件            I  无内容索引文件                L  解析点             -  表示“否”的前缀   /B          使用空格式(没有标题信息或摘要)。   /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来               禁用分隔符显示。   /D          跟宽式相同,但文件是按栏分类列出的。   /L          用小写。   /N          新的长列表格式,其中文件名在最右边。   /O          用分类顺序列出文件。   排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)                E  按扩展名(字母顺序)   D  按日期/时间(从先到后)                G  组目录优先           -  反转顺序的前缀   /P          在每个信息屏幕后暂停。   /Q          显示文件所有者。   /R          显示文件的备用数据流。   /S          显示指定目录和所有子目录中的文件。   /T          控制显示或用来分类的时间字符域。   时间段      C  创建时间               A  上次访问时间               W  上次写入的时间   /W          用宽列表格式。   /X          显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,               短名称插在长名称前面。如果没有短名称,在其位置则               显示空白。   /4          用四位数字显示年 可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号) 来替代预先设定的开关。例如,/-W。 
  | 
附录- Window DOS Find 命令信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
  | > find /? 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]   /V         显示所有未包含指定字符串的行。   /C         仅显示包含字符串的行数。   /N         显示行号。   /I         搜索字符串时忽略大小写。   /OFF[LINE] 不要跳过具有脱机属性集的文件。   "string" 指定要搜索的文本字符串。   [drive:][path]filename              指定要搜索的文件。 如果没有指定路径,FIND 将搜索在提示符处键入 的文本或者由另一命令产生的文本。 
  | 
总结
通过简单命令即可快速统计文件数量,而不需要在大文件时苦苦的通过右键属性来查看统计信息。