文件目录树

文件系统通过目录可以组织成比较复杂的树形结构。

通过文件树,用户可以快速了解某个目录的基本结构。不少图形软件(如 IDE ),提供了文件目录树的功能,使用非常方便。

那么,在 Linux 终端中,有办法显示文件目录树吗?

答案是肯定的—— tree 命令就可以完美地做到这一点:

tree

如果系统未安装 tree 命令,需要先通过包管理工具进行安装。以 Ubuntu 为例:

  1. $ sudo apt install tree

我们在代码仓库中内置了一个开源项目代码用于演示,位于 resources/dmi-python

接下来,进入该目录并运行 tree 命令显示目录树:

  1. $ cd resources/dmi-python
  2. $ tree
  3. .
  4. ├── README.md
  5. ├── bin
  6. ├── dmi -> ../dmi
  7. └── print-dmi-jsonic.py
  8. └── dmi
  9. ├── __init__.py
  10. ├── fetcher
  11. ├── __init__.py
  12. ├── fake.py
  13. ├── linux.py
  14. └── windows.py
  15. └── parser
  16. ├── __init__.py
  17. ├── parser.py
  18. ├── type.py
  19. └── type_parsers
  20. ├── __init__.py
  21. ├── all.py
  22. ├── base.py
  23. ├── t0_bios.py
  24. ├── t11_oem_strings.py
  25. ├── t126_inactive.py
  26. ├── t127_end_of_table.py
  27. ├── t16_physical_memory_array.py
  28. ├── t17_memory_device.py
  29. ├── t19_memory_array_mapped_address.py
  30. ├── t1_system.py
  31. ├── t2_baseboard.py
  32. ├── t32_system_boot.py
  33. ├── t3_chassis.py
  34. └── t4_processor.py

这样,整个项目的代码结构就清晰呈现在眼前了!

tree 命令显示中文目录或文件名会有乱码:

  1. $ tree
  2. .
  3. ├── Blog
  4. ├── Linux
  5. ├── Linux\200\232\224IO模�\236\213.md
  6. └── Linux\226\207\234��\204\220\206.md
  7. ├── Network
  8. ├── \221\234\203\202\215\217议�\213\211��\220\206\202.md
  9. └── \232\212��\205��\201\224\205�系�\207\207\233\206\200\217\221\226\207档.md
  10. ├── Python
  11. ├── Python\205饰�\231��\230级�\224��\225.md
  12. └── 使�\224gdb\203\225Python\213\217.md
  13. └── 常�\224�.md
  14. 4 directories, 7 files

这时只需加上 -N 选项即可:

  1. $ tree -N
  2. .
  3. ├── Blog
  4. ├── Linux
  5. ├── Linux通用IO模型.md
  6. └── Linux文本处理.md
  7. ├── Network
  8. ├── 网络七层协议之物理层.md
  9. └── 业务关联关系采集开发文档.md
  10. ├── Python
  11. ├── Python装饰器高级用法.md
  12. └── 使用gdb调试Python程序.md
  13. └── 常用.md
  14. 4 directories, 7 files

注解

根据 man 手册, -N 选项作用为:

Print non-printable characters as is instead of as escaped octal numbers.

意思是不对不可打印的 ASCII 字符进行转义。

下一步

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../_images/wechat-mp-qrcode.png小菜学编程

微信打赏