如何统计所有以a到g开头的文件?

如何统计所有以a到g开头的文件?

我有一个关于linux命令的问题。如何统计所有以a到g开头的文件?

答案1

LC_ALL=C
set -- [a-gA-G]*
if [ "$1" = '[a-gA-G]*' ]; then
  echo 0
else
  echo "$#"
fi          

答案2

您可以使用一行 shell 命令来完成此操作:

find / -name '[abcedfg]*' -print | wc -l

您将看到一些有关如何find没有权限读取某个目录或另一个目录的消息,但您将获得名称以这 7 个字母开头的文件的计数。

答案3

ls命令的 GNU 实现(由于您运行的是 Linux,因此您正在使用它)将查找当前目录中以字符 ag 开头的所有文件。

ls --ignore='[!a-g]*'

它指示忽略所有不以范围内的字符开头的文件[a-g]。反转!过滤器。*指示

接下来运行输出来wc -l计算行数。

完整的命令将是:

ls --ignore='[!a-g]*' | wc -l

该解决方案不会重复出现在子目录中。

答案4

ls -1 [a-g]* | wc -l

为什么会这样呢?因为您可能想要最简单的答案;这个假设您不必担心不计算目录、搜索子目录或大写文件名......这是我最常使用的命令。

相关内容