工作中经常需要到服务器上更新文件,了解磁盘空间的使用情况,或者检查目录来定位问题,这个时候掌握一些 Linux 磁盘管理相关的命令就特别有用。一般命令行工具的参数较多,我们常用的就那几个。最近正好在用到 du
来检查一些静态文件的空间占用情况,顺带了解一下这个命令的常用参数以及可以跟它配合使用的 sort
和 head
命令。
常用用法
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 文件名
使用场景
下面是一些实际应用的场景,把以上命令结合起来使用。
列出当前目录下最大的 10 个文件夹及其大小
du -h | sort -rh | head -n 10
查找当前目录下最大的文件夹(子目录不计算在内)
du -sh * | sort -rh | head -n 1
查找当前目录及其子目录中查找最大的文件,并列出前10个
find . -type f -exec du -h {} + | sort -rh | head -n 10
以上就是 du
sort
head
命令的常用用法和一些具体的使用场景。以后遇到更具体的使用场景再补充进来。