当前位置: 首页 > article >正文

深入了解 Linux tree 命令及其常用选项:Linux如何显示目录结构和文件大小

深入了解 Linux tree 命令及其常用选项

在 Linux 系统中,tree 命令是一个非常实用的工具,用于以树状结构显示目录及文件的层级关系。它不仅帮助我们可视化文件系统的结构,还可以显示文件大小、修改时间等信息。接下来,我们将详细介绍 tree 命令的主要作用、常见选项以及高阶用法,帮助大家更高效地使用该命令。

在 Linux 或 macOS 上,如果没有安装 tree,可以先安装它:

sudo apt-get install tree    # Ubuntu/Debian 系统
brew install tree            # macOS

一、tree 命令的基本作用

tree 命令的作用是以树形结构列出目录及其内容。该命令的输出展示了每个目录下的文件和子目录,同时以缩进的方式显示层级结构。通过这种方式,我们能够更加直观地查看文件系统的结构。

示例:

假设我们有一个目录 ~/.cache/huggingface/hub/models--google--gemma-2-2b,运行以下命令:

tree ~/.cache/huggingface/hub/models--google--gemma-2-2b

输出可能如下:

~/.cache/huggingface/hub/models--google--gemma-2-2b
├── [4.0K]  blobs
│   ├── [ 24K]  05c7984e8eee8ced110a5b0c9efe23e53ce379b8
│   ├── [4.6G]  1425aa066ec77e3eb79aac14a5bdea3ebcec46aa5c96cd40608c5c1fd70d193d
│   ├── [ 45K]  2357fc1a512dc3881eb99b9df3ef8e97ef7ffd51
│   ├── [ 17M]  3f289bc05132635a8bc7aca7aa21255efd5e18f3710f43e3cdb96bcd41be4922
│   ├── [459M]  4e08abc64d1767fdacd2c94da7f2ec4b8c65b25b19a53e87d19dc432901b5f02
│   ├── [4.0M]  61a7b147390c64585d6c3543dd6fc636906c9af3865a5548f27f31aee1d4c8e2
│   ├── [ 636]  8d6368f7e735fbe4781bf6e956b7c6ad0586df80
│   ├── [4.6G]  96c111d3dcdbde9271595e463b5d9f7fc4810ad8b79e736309c0a1833e6c0d35
│   ├── [ 818]  9983200362411f3e251b4c8ce28afad7e3996c1e
│   └── [ 168]  e9f2b419d37547ea30e2f193ff04443472c78cba
├── [4.0K]  refs
│   └── [  40]  main
└── [4.0K]  snapshots
    └── [4.0K]  c5ebcd40d208330abc697524c919956e692655cf
        ├── [  52]  config.json -> ../../blobs/9983200362411f3e251b4c8ce28afad7e3996c1e
        ├── [  52]  generation_config.json -> ../../blobs/e9f2b419d37547ea30e2f193ff04443472c78cba
        ├── [  76]  model-00001-of-00003.safetensors -> ../../blobs/1425aa066ec77e3eb79aac14a5bdea3ebcec46aa5c96cd40608c5c1fd70d193d
        ├── [  76]  model-00002-of-00003.safetensors -> ../../blobs/96c111d3dcdbde9271595e463b5d9f7fc4810ad8b79e736309c0a1833e6c0d35
        ├── [  76]  model-00003-of-00003.safetensors -> ../../blobs/4e08abc64d1767fdacd2c94da7f2ec4b8c65b25b19a53e87d19dc432901b5f02
        ├── [  52]  model.safetensors.index.json -> ../../blobs/05c7984e8eee8ced110a5b0c9efe23e53ce379b8
        ├── [  52]  special_tokens_map.json -> ../../blobs/8d6368f7e735fbe4781bf6e956b7c6ad0586df80
        ├── [  52]  tokenizer_config.json -> ../../blobs/2357fc1a512dc3881eb99b9df3ef8e97ef7ffd51
        ├── [  76]  tokenizer.json -> ../../blobs/3f289bc05132635a8bc7aca7aa21255efd5e18f3710f43e3cdb96bcd41be4922
        └── [  76]  tokenizer.model -> ../../blobs/61a7b147390c64585d6c3543dd6fc636906c9af3865a5548f27f31aee1d4c8e2

4 directories, 21 files

从输出可以看到,tree 不仅展示了目录结构,还列出了每个文件和目录的大小。

二、常见选项介绍

1. -s 选项:显示文件大小

-s 选项可以让 tree 命令在输出中显示每个文件和目录的大小(单位为字节)。对于大型目录结构,这个选项特别有用,可以让我们快速看到哪些文件占用了大量空间。

示例命令:

tree -s ~/.cache/huggingface/hub/models--google--gemma-2-2b

输出会显示每个文件的大小:

~/.cache/huggingface/hub/models--google--gemma-2-2b
├── [       4096]  blobs
│   ├── [      24224]  05c7984e8eee8ced110a5b0c9efe23e53ce379b8
│   ├── [ 4992576136]  1425aa066ec77e3eb79aac14a5bdea3ebcec46aa5c96cd40608c5c1fd70d193d
...
2. -h 选项:以人类可读的格式显示大小

-h 选项用于以人类可读的格式显示文件大小,如 KB、MB、GB 等。这个选项非常有用,特别是在文件非常大时,可以避免显示为字节(如 459M 或 4.6G),更容易理解。

示例命令:

tree -sh ~/.cache/huggingface/hub/models--google--gemma-2-2b

输出格式化后的文件大小:

~/.cache/huggingface/hub/models--google--gemma-2-2b
├── [4.0K]  blobs
│   ├── [ 24K]  05c7984e8eee8ced110a5b0c9efe23e53ce379b8
│   ├── [4.6G]  1425aa066ec77e3eb79aac14a5bdea3ebcec46aa5c96cd40608c5c1fd70d193d
...
3. -L 选项:限制显示层级

-L 选项可以限制显示目录树的层级深度。例如,如果只希望显示前两层目录,可以使用 -L 2

示例命令:

tree -L 2 ~/.cache/huggingface/hub/models--google--gemma-2-2b

输出会显示到指定的层级:

~/.cache/huggingface/hub/models--google--gemma-2-2b
├── blobs
├── refs
└── snapshots
4. -f 选项:显示完整路径

-f 选项可以让 tree 命令输出完整的文件路径,而不是相对路径。这个选项对于查看绝对路径非常有用。

示例命令:

tree -f ~/.cache/huggingface/hub/models--google--gemma-2-2b

输出会显示完整的文件路径:

~/.cache/huggingface/hub/models--google--gemma-2-2b
├── ~/.cache/huggingface/hub/models--google--gemma-2-2b/blobs
├── ~/.cache/huggingface/hub/models--google--gemma-2-2b/refs 
└── ~/.cache/huggingface/hub/models--google--gemma-2-2b/snapshots
5. -a 选项:包括隐藏文件

默认情况下,tree 命令不会显示以点 . 开头的隐藏文件和目录。使用 -a 选项可以包括这些文件和目录。

示例命令:

tree -a ~/.cache/huggingface/hub/models--google--gemma-2-2b

三、高阶用法

1. 管道和其他命令结合使用

tree 命令的输出可以通过管道传递给其他命令进行进一步处理。例如,使用 grep 查找特定的文件类型或目录。

示例命令:

tree ~/.cache/huggingface/hub/models--google--gemma-2-2b | grep ".safetensors"

这个命令会列出所有 .safetensors 文件。

2. 输出到文件

通过 -o 选项,tree 命令可以将输出保存到文件中,便于后续查看或分享。

示例命令:

tree -o output.txt ~/.cache/huggingface/hub/models--google--gemma-2-2b

这会将树形结构输出保存到 output.txt 文件中。

四、总结

tree 是一个非常强大的命令,通过不同的选项,我们可以定制化地查看文件系统的结构。了解常见的选项和用法后,我们可以更高效地操作文件系统,特别是在处理大型目录结构时,tree 是不可或缺的工具。

后记

2024年12月30日15点29分于上海,在GPT4o mini大模型辅助下完成。


http://www.kler.cn/a/459890.html

相关文章:

  • oceanbase集群访问异常问题处理
  • 解释下torch中的scatter_add_
  • 从0入门自主空中机器人-4-【PX4与Gazebo入门】
  • 永磁同步电机负载估计算法--自适应龙伯格观测器
  • 第十一章 图论
  • springboot中,怎么把对象的空属性转为json的时候过滤掉
  • 【分布式文件存储系统Minio】2024.12保姆级教程
  • CentOS修改docker镜像存储位置并进行数据迁移
  • Java-list均分
  • 机器学习-高斯混合模型
  • 深度学习中常用的开源数据集
  • 艾体宝产品丨加速开发:Redis 首款 VS Code 扩展上线!
  • android13 系统文字大小和显示大小的修改
  • 【Linux】:多线程(读写锁 自旋锁)
  • RabbitMQ基础篇之Java客户端快速入门
  • 【每日学点鸿蒙知识】RichText展示问题、slider组件内置间距、WebView性能优化、AVSession错误
  • 12.30 linux 文件操作,磁盘分区挂载
  • 【2024年-7月-13日-开源社区openEuler实践记录】探索 CPM4OSSP-UI:提升用户交互体验的开源宝藏
  • 软件测试 Linux 服务器监控命令的基本知识
  • 大模型—Ollama 结构化输出
  • C12.【C++ Cont】string类字符串的创建、输入、访问和size函数
  • 利用AI进行系统性能优化:智能运维的新时代
  • Docker搭建Jenkins
  • 【Elasticsearch】数据分布与路由机制
  • 无人机驾驶证对入伍有帮助吗?
  • linux 点对点语音通话及直播推流实践三:嵌入式无GUI Linux VoIP语音对讲方案