工作中经常需要到服务器上更新文件,了解磁盘空间的使用情况,或者检查目录来定位问题,这个时候掌握一些 Linux 磁盘管理相关的命令就特别有用。一般命令行工具的参数较多,我们常用的就那几个。最近正好在用到 du 来检查一些静态文件的空间占用情况,顺带了解一下这个命令的常用参数以及可以跟它配合使用的 sorthead 命令。

常用用法

du 命令

du 命令是一个强大的工具,可用于快速查看文件和目录的磁盘使用情况,以帮助管理磁盘空间。

# 查看当前目录的磁盘使用情况
du

# 查看指定目录的磁盘使用情况
du 目录名

# 查看目录及其子目录的总大小,以人类可读的格式显示
du -h

# 查看指定目录的大小,以人类可读的格式显示
du -h 目录名

# 查看当前目录下的子文件夹大小而不包括文件的话
du -h -d 1

# 查看指定目录下所有文件和目录的大小,并按大小逆序排序
du -h | sort -rh

# 查看指定目录下所有文件和目录的大小,并按大小顺序排序
du -h | sort -h

# 限制显示的结果行数(例如,只显示前10个最大的文件/目录)
du -h | sort -rh | head -n 10

# 显示文件夹的大小总和而不显示子文件夹的详细信息
du -sh 目录名

sort 命令

sort 命令用于对文本文件进行排序。你可以按行、按字段、逆序等多种方式进行排序。

# 对文本文件按行进行字典序排序并显示结果
sort 文件名

# 对文本文件按行进行逆序(降序)排序并显示结果
sort -r 文件名

# 对文本文件按指定字段(列)进行排序,并显示结果
# 例如,按第二列进行排序
sort -k2 文件名

# 对文本文件按指定字段(列)进行逆序(降序)排序,并显示结果
# 例如,按第二列进行逆序排序
sort -k2,2r 文件名

# 忽略大小写进行排序
sort -f 文件名

# 合并排序已排序的文件
sort -m 文件1 文件2

# 合并并排序多个文件
sort 文件1 文件2 文件3

# 合并并排序多个文件,输出到新文件
sort 文件1 文件2 文件3 -o 输出文件名

head 命令

head 命令通常用于显示单个文件的前几行,但当你提供多个文件名作为参数时,它将分别显示每个文件的开头部分,并在每个文件的输出之间添加文件名标识。

# 显示文件的前n行(默认为前10行)
head 文件名

# 显示文件的前n行,其中n由用户指定
head -n 20 文件名

# 显示多个文件的前n行,每个文件的开头各占一行
head 文件1 文件2

# 显示多个文件的前n行,同时显示文件名
head -n 5 文件1 文件2

# 显示多个文件的前n行,不显示文件名
head -n 5 文件1 && head -n 5 文件2

# 显示标准输入的前n行,通常与管道结合使用
cat 文件名 | head -n 10

# 显示文件的前n个字符而不是行,通常与-c选项一起使用
head -c 50 文件名

使用场景

下面是一些实际应用的场景,把以上命令结合起来使用。

  1. 列出当前目录下最大的 10 个文件夹及其大小

    du -h | sort -rh | head -n 10
    
  2. 查找当前目录下最大的文件夹(子目录不计算在内)

    du -sh * | sort -rh | head -n 1
    
  3. 查找当前目录及其子目录中查找最大的文件,并列出前10个

    find . -type f -exec du -h {} + | sort -rh | head -n 10
    

以上就是 du sort head 命令的常用用法和一些具体的使用场景。以后遇到更具体的使用场景再补充进来。