Backend-Development
  • Introduce
  • 操作系统和Linux
    • 操作系统基础
      • 进程
      • 进程间通信
      • 线程 & 协程
      • 调度
      • 互斥 & 同步
      • 死锁 & 饥饿
      • 内存管理
      • 文件系统
      • IO
    • Linux
      • Linux共享内存
      • Linux进程的内存空间布局
      • 僵尸进程和孤儿进程
      • 用户态和内核态
      • Linux进程调度算法
      • 理解inode
      • Linux进程间通信
      • Linux虚拟文件系统
      • CPU亲和性
      • 零拷贝技术
      • Linux IO栈
    • Linux常考命令
      • 管道和重定向
      • 文本处理三剑客
      • 文件和目录管理
      • 进程&内存&CPU管理
      • 用户&组管理
      • 网络管理
    • Linux系统调用
      • 内存
      • 进程
    • Linux系统编程
      • Linux堆内存管理
      • pthread库
    • Shell编程
  • 网络通信与网络编程
    • 计算机网络
      • 应用层其他协议
      • 应用层之DNS协议
      • 应用层之HTTP/3协议
      • 应用层之HTTPS协议
      • 应用层之HTTP协议
      • 传输层之UDP协议
      • 传输层之TCP协议
      • 网络层其他协议
      • 网络层之IP协议
      • 数据链路层
      • 物理层
    • 网络编程
      • cookie、session、token
      • TCP的粘包问题
      • 幂等性
      • 网络IO模型
      • 多路复用IO
      • Socket编程
      • 高并发服务器
    • Linux网络编程之底层
      • 传输控制块TCB
      • TCP数据发送之tcp_sendmsg()
      • TCP选项之MSS
    • 网络安全
    • Nginx
    • Wireshark
    • Libevent
  • 数据库
    • 数据库相关概念
    • 关系数据库设计范式
    • SQL
      • 初级SQL
      • 中级SQL
      • 高级SQL
    • Redis
      • Redis数据结构
      • Redis数据类型
      • 数据持久化
      • 雪崩 & 击穿 & 穿透
      • 主从复制
      • Redis集群
    • MySQL
      • MySQL数据类型
      • 事务
      • 事务隔离
      • 存储引擎
      • MyISAM与InnoDB
      • 锁机制
      • 索引
      • 联合索引
      • 主从复制
      • MySQL集群
      • MySQL使用总结
    • MongoDB
      • 启动与停止
      • 查询
    • Memcached
  • 组成原理和体系结构
    • 定点数 & 浮点数 & 内存
    • 体系结构
  • 编译和调试
    • 编译原理
    • Gdb调试
    • 内存屏障
    • 编译器优化
    • make/Makefile
    • cmake
    • 交叉编译
    • C++单元测试
    • 单元测试之Google Test
  • 设计模式
    • 设计模式
    • “组件协作”模式
  • 其他
    • 正则表达式
      • 基本正则表达式
      • 扩展正则表达式
    • Git版本控制
      • 提交代码
      • 常用命令
    • 编码和字符集
    • Vim用法
    • 一文解“锁”
    • 无锁技术
    • 面试中的“锁”
  • 面试题
    • 计算机网络面试题
    • 操作系统面试题
    • 数据库面试题
    • 其他面试题
    • 场景题总结
    • 智力题
Powered by GitBook
On this page
  • 1、统计
  • 1.1、统计数目
  • 1.2、统计大小
  • 2、显示文件
  • 2.1、cat

Was this helpful?

  1. 操作系统和Linux
  2. Linux常考命令

文件和目录管理

Previous文本处理三剑客Next进程&内存&CPU管理

Last updated 4 years ago

Was this helpful?

1、统计

1.1、统计数目

Linux下有三个命令:ls、grep、wc。通过这三个命令的组合可以统计目录下文件及文件夹的个数。

  • 统计当前目录下文件的个数(不包括目录)

$ ls -l | grep "^-" | wc -l
$ find ./ -type f | wc -l
  • 统计当前目录下文件的个数(包括子目录)

$ ls -lR | grep "^-" | wc -l
  • 查看某目录下文件夹(目录)的个数(包括子目录)

$ ls -lR | grep "^d" | wc -l
  • 查看某目录下PNG图片的个数

$ ls -lR | grep "png$" | wc -l

命令解析:

  • ls -l:长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,ls -lR是列出所有文件,包括子目录。

  • grep "^-":过滤ls的输出信息,只保留一般文件,只保留目录是grep "^d"。

  • wc -l:统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。

du可以查看文件及文件夹的大小。

df -T  # 可以用来查看分区的文件系统
df -h  # 使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
  • 统计当前目录下面所有的一级目录文件大小

$ du -h --max-depth=1 ./
  • 查看当前目录总共占的容量,而不单独列出各子项占用的容量

$ du -sh
  • 统计当前文件夹(目录)大小,并按文件大小排序

$ du -s * | sort -nr  # 如果加 h,会按文件size列值的字典顺序排序

linux中命令cat、more、less均可用来查看文件内容,主要区别有: cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况; more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。

  1. 命令格式: cat [选项]... [文件]...

  2. 命令功能: 将[文件]或标准输入组合输出到标准输出。

  3. cat主要有三大功能:

    1. 一次显示整个文件:cat filename

    2. 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件

    3. 将几个文件合并为一个文件:cat file1 file2 > file

  4. 常用参数列表

    1. -A, --show-all 等于-vET

    2. -b, --number-nonblank 对非空输出行编号

    3. -e, 等于-vE

    4. -n, --number 对输出的所有行编号

    5. -E, --show-ends 在每行结束处显示"$"

1.2、统计大小

2、显示文件

2.1、cat

🍊
🐹
🐹
🍊
🐹