热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

统计Linux中文件和文件夹/目录的数量(示例代码)

统计Linux中文件和文件夹目录的数量(示例代码)-嗨,伙计们,今天我们再次带来一系列可以多方面帮助到你的复杂的命令。通过操作命令,可以帮助您计数当前目录中的文件和目录、递归计数,

嗨,伙计们,今天我们再次带来一系列可以多方面帮助到你的复杂的命令。 通过操作命令,可以帮助您计数当前目录中的文件和目录、递归计数,统计特定用户创建的文件列表等。

在本教程中,我们将向您展示如何使用多个命令,并使用 ls、egrep、wc 和 find 命令执行一些高级操作。 下面的命令将可用在多个方面。

为了实验,我打算总共创建 7 个文件和 2 个文件夹(5 个常规文件和 2 个隐藏文件)。 下面的 tree 命令的输出清楚的展示了文件和文件夹列表。

# tree -a /opt
/opt
├── magi
│  └── 2g
│  ├── test5.txt
│  └── .test6.txt
├── test1.txt
├── test2.txt
├── test3.txt
├── .test4.txt
└── test.txt
 directories, 7 files

示例-1

统计当前目录的文件(不包括隐藏文件)。 运行以下命令以确定当前目录中有多少个文件,并且不计算点文件(LCTT 译注:点文件即以“.” 开头的文件,它们在 Linux 默认是隐藏的)。

# ls -l . | egrep -c '^-'
# ls -l . | egrep -c '^-'

细节:

  • ls : 列出目录内容
  • -l : 使用长列表格式
  • . : 列出有关文件的信息(默认为当前目录)
  • | : 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符
  • egrep : 打印符合模式的行
  • -c : 通用输出控制
  • '^-' : 以“-”开头的行(ls -l 列出长列表时,行首的 “-” 代表普通文件)

示例-2

统计当前目录包含隐藏文件在内的文件。 包括当前目录中的点文件。

# ls -la . | egrep -c '^-'
# ls -la . | egrep -c '^-'

示例-3

运行以下命令来计数当前目录的文件和文件夹。 它会计算所有的文件和目录。

# ls -l | wc -l
# ls -l | wc -l

细节:

  • ls : 列出目录内容
  • -l : 使用长列表格式
  • | : 将一个程序的输出发送到另一个程序进行进一步处理的控制操作符
  • wc : 这是一个统计每个文件的换行符、单词和字节数的命令
  • -l : 输出换行符的数量

示例-4

统计当前目录包含隐藏文件和目录在内的文件和文件夹。

# ls -la | wc -l
# ls -la | wc -l

示例-5

递归计算当前目录的文件,包括隐藏文件。

# find . -type f | wc -l
# find . -type f | wc -l

细节 :

  • find : 搜索目录结构中的文件
  • -type : 文件类型
  • f : 常规文件
  • wc : 这是一个统计每个文件的换行符、单词和字节数的命令
  • -l : 输出换行符的数量

示例-6

使用 tree 命令输出目录和文件数(不包括隐藏文件)。

# tree | tail -1
 directories, 5 files
# tree | tail -1
directories, 5 files

示例-7

使用包含隐藏文件的 tree 命令输出目录和文件计数。

# tree -a | tail -1
 directories, 7 files
# tree -a | tail -1
2 directories, 7 files

示例-8

运行下面的命令递归计算包含隐藏目录在内的目录数。

# find . -type d | wc -l
# find . -type d | wc -l

示例-9

根据文件扩展名计数文件数量。 这里我们要计算 .txt 文件。

# find . -name "*.txt" | wc -l
# find . -name "*.txt" | wc -l

示例-10

组合使用 echo 命令和 wc 命令统计当前目录中的所有文件。 4 表示当前目录中的文件数量。

# echo *.* | wc
1    4   39
# echo *.* | wc
1    4   39

示例-11

组合使用 echo 命令和 wc 命令来统计当前目录中的所有目录。 第二个 1 表示当前目录中的目录数量。

# echo */ | wc
1    1    6
# echo */ | wc
1    1    6

示例-12

组合使用 echo 命令和 wc 命令来统计当前目录中的所有文件和目录。 5 表示当前目录中的目录和文件的数量。

# echo * | wc
1 5 44
# echo * | wc
1 5 44

示例-13

统计系统(整个系统)中的文件数。

# find / -type f | wc -l
69769
# find / -type f | wc -l
69769

示例-14

统计系统(整个系统)中的文件夹数。

# find / -type d | wc -l
8819
# find / -type d | wc -l
8819

示例-15

运行以下命令来计算系统(整个系统)中的文件、文件夹、硬链接和符号链接数。

# find / -type d -exec echo dirs \; -o -type l -exec echo symlinks \; -o -type f -links +1 -exec echo hardlinks \; -o -type f -exec echo files \; | sort | uniq -c
  8779 dirs
 69343 files
   20 hardlinks
 11646 symlinks
# find / -type d -exec echo dirs \; -o -type l -exec echo symlinks \; -o -type f -links +1 -exec echo hardlinks \; -o -type f -exec echo files \; | sort | uniq -c
  8779 dirs
 69343 files
   20 hardlinks
 11646 symlinks

总结


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
author-avatar
天高云淡-tgyd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有