Linux:查找目录和子目录中的文件数

时间:2020-02-23 14:39:35  来源:igfitidea点击:

有时我们想在Linux中查找目录中的文件数。
例如,查找theitroad WordPress上传目录中存在多少图像。

有多种方法可以做到这一点,让我们研究一些常见的情况以及查找目录中文件数量的最佳命令。

1.查找目录中的文件数

我们可以将ls命令和wc命令一起使用来计算目录中的文件数。
让我们计算一下主题根目录中的文件数。

# ls
404.php    archive.php   functions.php  inc        layouts            phpcs.xml.dist     screenshot.png    single.php      webpack
LICENSE    comments.php  header.php     index.php  package-lock.json  postcss.config.js  search.php        src             woocommerce.css
Plugins    dist          home.php       js         package.json       readme.txt         sidebar-left.php  style.css
README.md  footer.php    images         languages  page.php           rtl.css            sidebar.php       template-parts
# ls -1 | wc -l
34

Linux查找目录中的文件数

如果您查看图像,则蓝色项目是目录。
它们也作为文件包含在输出中。

如果我们只想计算文件而不是目录怎么办?

# ls -p | grep -v/| wc -l
24
#
  • " ls -p"命令在目录名的末尾带有" /"。

  • " grep -v /"命令过滤输出,仅输出不包含" /"的名称,因此省略了所有目录。

  • 最后," wc -l"计算输出中的行并打印。

同样,如果只想在目录中查找目录数,请使用以下命令。

# ls -p | grep/| wc -l
10
#

注意:上面的命令不会查找隐藏文件,如果您希望计数也包括隐藏文件,请在ls命令中使用" -a"选项。

# ls -a1 | wc -l
41
#

该命令将计数为"."和" ..",因此如果需要,您将必须在shell脚本中考虑到这一点。

2.递归查找目录和子目录中的文件数

上面的示例很好地计算了目录中的文件和目录。
但是,如果您还要计算包括子目录在内的文件数,则必须使用find命令。

# find . -type f
./.test_file
./functions.php
./logger/class-logger-writter.php
./logger/class-logger-export.php
./logger/assets/js/base.js
./logger/assets/css/base.css
./logger/assets/css/base.less
./logger/assets/css/base.css.map
./logger/class-logger-reader.php
./class-protector.php
./class-anti-spam-plugin.php
# find . -type f | wc -l
11
#

  • 查找命令" -type f"选项用于查找常规文件。

  • 此命令将忽略所有目录"."和" .."文件。
    但是,它将在输出中包含隐藏文件。

  • " wc -l"命令将对行的总数进行计数并打印出来,从而为我们提供了文件计数。