@@ -488,6 +488,47 @@ Ubuntu 官方源位于国外,往往会有速度与延迟上的限制,可以
488488
489489在 Linux 在进行操作文件与目录是使用 Linux 最基础的一个技能。不像在 Windows 和 macOS 下有图形化界面,拖拽文件即可完成文件的移动,很容易管理文件与目录,Linux 的命令行操作虽然繁琐一些,但一旦上手,就可以通过命令与参数的组合完成通过图形化界面难以实现或者无法实现的功能。
490490
491+ ### 查看文件夹内容 {#ls}
492+
493+ [ 第二章] ( ../Ch02/index.md ) 已经介绍过 ` ls ` 的基本用法,这里再补充一些常用的选项。
494+
495+ ``` console
496+ $ # -l 参数会以列表的形式输出文件的详细信息
497+ $ ls -l [DIRECTORY]
498+ $ # -a 参数会显示所有文件,包括隐藏文件(以 . 开头的文件)
499+ $ ls -a [DIRECTORY]
500+ $ # -h 参数会以人类可读的方式显示文件大小,例如 1K、234M、2G 等
501+ $ ls -h [DIRECTORY]
502+ ```
503+
504+ !!! example "ls 示例"
505+
506+ * 以列表的形式显示当前目录下的所有文件(包括隐藏文件)
507+
508+ ```console
509+ $ ls -la
510+ ```
511+
512+ * 以人类可读的方式显示当前目录下的所有文件(包括隐藏文件)的详细信息
513+
514+ ```console
515+ $ ls -lha
516+ ```
517+
518+ !!! tip "tree"
519+
520+ `tree` 命令可以以树状图的形式显示目录结构,使用前需要先安装:
521+
522+ ```console
523+ $ sudo apt install tree
524+ ```
525+
526+ 使用方法:
527+
528+ ```console
529+ $ tree [DIRECTORY]
530+ ```
531+
491532### 查看文件内容 {#view}
492533
493534#### cat {#cat}
@@ -836,6 +877,46 @@ $ find [OPTION] PATH [EXPRESSION]
836877 (以下省略)
837878 ```
838879
880+ ### 统计文件或文件夹大小 {#du}
881+
882+ ` du ` 命令可以统计文件和目录的大小。目录的大小是无法直接获取的,需要统计里面所有的文件和子目录的大小之后加和才能得到。` du ` 命令的输出类似这样:
883+
884+ ``` console
885+ $ du -h /etc/
886+ 4.0K /etc/initramfs-tools/hooks
887+ 8.0K /etc/initramfs-tools/conf.d
888+ 4.0K /etc/initramfs-tools/scripts/local-premount
889+ 4.0K /etc/initramfs-tools/scripts/nfs-premount
890+ (中间内容省略)
891+ 4.0K /etc/initramfs-tools/scripts/panic
892+ 4.0K /etc/initramfs-tools/scripts/local-top
893+ 44K /etc/initramfs-tools/scripts
894+ 72K /etc/initramfs-tools
895+ 12K /etc/udisks2
896+ 16K /etc/fonts/conf.d
897+ 60K /etc/fonts/conf.avail
898+ 84K /etc/fonts
899+ ```
900+
901+ 由于前面说到的原因,` du ` 需要先递归进入子目录,处理完其中所有的项目之后,才能回到上层目录并显示上层目录的总大小。
902+
903+ 此外,` ncdu ` 命令可以以图形化和交互式的方式显示目录的内容和大小,并可以用左右方向键浏览目录,类似 Windows 的文件资源管理器。这非常便于观察哪个目录占用了较大的磁盘空间。按 ` d ` 可以删除当前选中的文件或目录,按 ` q ` 退出。
904+
905+ ``` plain
906+ ncdu 1.18 ~ Use the arrow keys to navigate, press ? for help
907+ --- /home/example/path -------------------------------------
908+ 53.1 MiB [##########] /main
909+ 45.4 MiB [######## ] Contents-riscv64.gz
910+ 40.6 MiB [####### ] /universe
911+ 580.0 KiB [ ] /multiverse
912+ 44.0 KiB [ ] /restricted
913+ 8.0 KiB [ ] InRelease
914+ 8.0 KiB [ ] Release
915+ 4.0 KiB [ ] Release.gpg
916+
917+ Total disk usage: 139.7 MiB Apparent size: 139.6 MiB Items: 29
918+ ```
919+
839920### 模式匹配 {#pattern}
840921
841922许多现代的 shell 都支持一定程度的模式匹配。举个例子,bash 的匹配模式被称为 [ glob] ( https://mywiki.wooledge.org/glob ) ,支持的操作如下:
0 commit comments