Linux作为服务器系统,使用起来并不像Windows那样直观和便利,因为它主要依赖命令行操作。在使用云服务器时,我需要定期查看磁盘空间的使用情况以及文件所占的空间大小。经过一番搜索和学习,我掌握了几个在Linux命令行下查看磁盘信息的命令,尽管它们十分简单,但对我而言仍有些新内容值得记录。
我的云服务器通常用于数据分享,最近我想要了解磁盘和其中文件的占用情况,于是搜索并学习了一些查看磁盘空间信息的命令,命令虽然简单,但对我自己来说还是有些新的东西值得记录。
首先,登录服务器使用 df
命令查看磁盘情况:
/home/projects/databook# df .Filesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 51420828 14018512 35079240 29% /
输出包含了当前文件系统的磁盘使用情况。 使用 df
命令的 -h
参数可以更好地展示磁盘情况:
/home/projects/databook# df -h .Filesystem Size Used Avail Use% Mounted on/dev/vda1 50G 14G 34G 29% /
-h
参数表示以人类易读的方式显示磁盘容量情况。上面的输出表示磁盘的总容量为50G,目前已使用了14G,剩余34G。 使用 du
命令查看指定目录下文件的占用情况,例如我想查看databook目录的文件占用情况,可以使用以下命令:
/home/projects/databook# du -hd 1 .24K ./certs4.0K ./download3.2M ./admin-ui2.9M ./public108K ./output181M ./upload472K ./markdown-files207M .
-h
参数表示以人类易读的方式显示, -d 1
参数表示只进入一个目录级别(也就是当前目录)。 我希望按照文件/文件夹占用磁盘空间大小的顺序来显示,以便可以快速定位到占用空间大的文件/文件夹。
然而, du
命令并没有直接按磁盘空间大小排序的参数,所以尝试结合 sort
命令来排序:
/home/projects/databook# du -hd 1 . | sort -n2.9M ./public3.2M ./admin-ui4.0K ./download24K ./certs108K ./output181M ./upload207M .472K ./markdown-files
sort
命令的 -n
参数表示按数字排序,但是文件夹大小不仅有数字,还有单位(如M,K等),因此这样排序对我们并不是十分有效。 接下来,尝试将所有文件统一用字节表示,然后排序:
/home/projects/databook# du -kd 1 . | sort -n4 ./download24 ./certs108 ./output472 ./markdown-files2948 ./public3224 ./admin-ui184532 ./upload211112 .
du
命令的 -k
参数表示用字节表示文件/文件夹的大小。虽然这也是一种排序方式,但可读性较差,而且字节并不是人类易读的方式,所以使用MB,GB等更易理解的单位更好。 进一步调查后发现, sort
命令居然也有 -h
参数,也是为了读取人类易读格式的值:
/home/projects/databook# du -hd 1 . | sort -hr207M .181M ./upload3.2M ./admin-ui2.9M ./public472K ./markdown-files108K ./output24K ./certs4.0K ./download
这样满足了我查询磁盘空间的要求。 sort
命令的 -r
参数表示从大到小排序,因为我关注的是大文件,所以想把它们排在前面。 补充信息:在2009年, -h
参数被添加到GNU sort中。