linux系统下以存储从大到小并以K,M,G为单位的方式查看当前目录下的文件信息…[通俗易懂]

linux系统下以存储从大到小并以K,M,G为单位的方式查看当前目录下的文件信息…

大家好,又见面了,我是全栈君。

zhuazai:https://blog.csdn.net/sty945/article/details/79830915

 

 

前言

最近几乎大部分工作都在linux上进行的,发现在工作过程中经常要查看当前目录下的文件大小,但是每次都是用ls命令每次都是以字节形式显示的,看起来特别不爽。于是开始了再linux下如何看起来很爽文件显示之旅。

ls命令

这个命令可能是我们在linux环境下最常用的命令了,闲来没事, ls一下。用ls命令查看文件夹下的文件信息一般是这样的

  • sty@dl-server01:~/styfiles$ ls
    demo.sh  fastAI  pythonFile  styNet  teamviewer_amd64.deb

ls -a

我们只能看见文件夹下的显示当前目录下非隐藏的文件与目录信息 
我们用ls -a显示当前目录下包括隐藏文件在内的所有文件列表

  • sty@dl-server01:~/styfiles$ ls -a
    .  ..  demo.sh  fastAI  .ipynb_checkpoints  pythonFile  styNet  teamviewer_amd64.deb

ls -l

我们用ls -l 输出长格式列表,信息包含了文件的大小和类型

sty@dl-server01:~/styfiles$ ls -l
total 10148
-rw-rw-r--  1 sty sty      394 4月   5 20:42 demo.sh
drwxrwxr-x  5 sty sty     4096 1月  14 18:20 fastAI
drwxrwxr-x 12 sty sty     4096 4月   5 21:48 pythonFile
drwxrwxr-x  3 sty sty     4096 4月   5 20:26 styNet
-rw-rw-r--  1 sty sty 10374958 12月 19 15:25 teamviewer_amd64.deb

ll

我平时用的更多的可能是ll,这个在ls -l的基础上还可以显示隐藏文件

sty@dl-server01:~/styfiles$ ll
total 10160
drwxrwxr-x  6 sty sty     4096 4月   5 22:01 ./
drwxr-xr-x  6 sty sty     4096 4月   5 21:57 ../
-rw-rw-r--  1 sty sty      394 4月   5 20:42 demo.sh
drwxrwxr-x  5 sty sty     4096 1月  14 18:20 fastAI/
drwxr-xr-x  2 sty sty     4096 1月  14 16:48 .ipynb_checkpoints/
drwxrwxr-x 12 sty sty     4096 4月   5 21:48 pythonFile/
drwxrwxr-x  3 sty sty     4096 4月   5 20:26 styNet/
-rw-rw-r--  1 sty sty 10374958 12月 19 15:25 teamviewer_amd64.deb

du命令

这个命令主要是显示目录或者文件所占空间

[root@localhost test]# du
608 ./test6
308 ./test4
4 ./scf/lib
4 ./scf/service/deploy/product
4 ./scf/service/deploy/info
12 ./scf/service/deploy
16 ./scf/service
4 ./scf/doc
4 ./scf/bin
32 ./scf
8 ./test3
1288 .

du -s

使用du -s只显示总和的大小

sty@dl-server01:~/styfiles$ du -s
2747588 .

du -s *

使用du -s *将显示所有文件的大小

sty@dl-server01:~/styfiles$ du -s *
4       demo.sh
2722128 fastAI
15292   pythonFile
24      styNet
10132   teamviewer_amd64.deb

du -s * | sort -nr

使用du -s * | sort -nr我们可以将文件从大到小显示出来

sty@dl-server01:~/styfiles$ du -s * | sort -nr
2722128 fastAI
15292   pythonFile
10132   teamviewer_amd64.deb
24      styNet
4       demo.sh

但是这是以kb形式显示文件大小的,比如我想知道fastAI这个文件夹多大,我肯定希望以MB或者GB为单位。使用du -sh *是可以这么人性化的显示的

sty@dl-server01:~/styfiles$ du -sh *
4.0K    demo.sh
2.6G    fastAI
15M     pythonFile
24K     styNet
9.9M    teamviewer_amd64.deb

但是没有排序,我们再用组合命令du -sh * | sort -nr进行排序之后发现排序是以数字大小排序的,我们fastAI文件夹都2.6G大小了却排到了最后面,这显示不是我们想要的

sty@dl-server01:~/styfiles$ du -sh * | sort -nr
24K     styNet
15M     pythonFile
9.9M    teamviewer_amd64.deb
4.0K    demo.sh
2.6G    fastAI

我的DIY_Bash

但是我想要的结果是这样的:

sty@dl-server01:~/styfiles$ sort_file.sh
2.60G            fastAI
14.93M           pythonFile
9.89M            teamviewer_amd64.deb
24k              styNet
4k               demo.sh

其实这个我们可以通过du 和awk命令组合完成

#!/bin/sh

# description: Sort the files in your directory by size, and Display their storage size directly
# user: sty
# blog: https://blog.csdn.net/sty945
# github: https://github.com/sty945


du -s * | sort -nr | awk -F'\t' '{if(1024 * 1024 * 1024 * 1024 > $1 && $1 >= 1024 * 1024 * 1024) {printf "%.2fT\t\t %-2s\n", $1/(1024 * 1024 * 1024), $2} else if(1024 * 1024 * 1024 > $1 && $1 >= 1024 * 1024) {printf "%.2fG\t\t %-2s\n", $1/(1024 * 1024), $2} else if (1024 * 1024 > $1 && $1 >= 1024) {printf "%.2fM\t\t %-2s\n", $1/1024, $2} else {printf "%sk\t\t %-2s\n", $1, $2}}' 

我已经将该脚本写入shell脚本,并上传到Github之上地址如下,并且里面也将详细写出了如何在linux任何地方都可以随时使用这个脚本,就像你使用linux命令一样方便: 
DIY_Bash 
欢迎大家fork这个文件夹,让里面的内容丰富起来,如果觉得不错,请点个star,鼓励我一下

在linux任意位置都可以使用这个目录下的脚本

我们从Github中下载文件夹到自己的电脑上,解压后,进入文件夹,然后敲命令pwd显示当前文件的路径是多少,比如我的电脑的路径是:

sty@dl-server01:~/DIY_Bash$ pwd
/media/home/sty/DIY_Bash

然后我们打开~/.bash_profile

sty@dl-server01:~$ vim ~/.bash_profile

~/.bash_profile中按照下面的样式加入刚才显示的目录

export PATH=/media/home/sty/DIY_Bash:$PATH

然后执行下面的命令

source ~/.bash_profile

重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

然后我们就可以在任意的文件夹下使用我们的脚本了 
比如我们只需要在输入sorf_file.sh就可以以从存储大到小的顺序而且人性化的显示当前文件夹的非隐藏目录的大小了。

注意

如果你出现出现类似下面的错误:Permission denied

sty@dl-server01:~$ sort_file.sh
-bash: /media/home/sty/DIY_Bash/sort_file.sh: Permission denied

这是由于这个脚本没有权限的原因,你只需要进入DIY_Bash文件夹执行下面的命令即可, 
这将为DIY_Bash下的脚本都赋予执行权限:

 chmod +x *

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112133.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql修改表名

    mysql修改表名ALTER TABLE table_nameRENAMETOnew_table_name

    2022年6月1日
    28
  • Java 持久层概述

    Java 持久层概述JDBCJavaData 是一系列接口规范 Java 程序都是通过 JDBC 连接数据库的 然后通过其执行 SQL 对数据库进行操作 DBC 只是 Sun 公司定义的接口规范 具体实现是交由各个数据库厂商去实现的 因为每个数据库都有其特殊性 这些是 Java 规范没办法确定的 importjava sql importjava util logging Level importjava util logging Logger publicclas

    2025年11月17日
    2
  • ORACLE触发器具体解释

    ORACLE触发器具体解释

    2021年12月6日
    38
  • Oracle拼接字符串——‘||’[通俗易懂]

    Oracle拼接字符串——‘||’[通俗易懂]目录‘||’用法示例‘||’用法示例示例1:在SUM值前添加‘3MCON’原数据:updatetestsetsum=’3MCON’||sum修改后数据:

    2022年9月20日
    4
  • 云存储及分布式文件系统

    云存储及分布式文件系统云存储是云计算中有关数据存储、归档、备份的一部分。存储技术从磁带发展到磁盘、再从磁盘发展到阵列、从阵列发展到网络存储。随着集群技术、网格技术、分布式存储技术、虚拟化存储技术的发展,进入了云存储的时代。以网盘为代表就是云存储的一种表现形式,实现用户文件数据存储至网络,达到存储、备份、使用、共享和保护的目的。

    2022年5月20日
    45
  • MySQL中字段类型为longtext的值导出后显示二进制串「建议收藏」

    MySQL中字段类型为longtext的值导出后显示二进制串「建议收藏」MySQL中字段类型为longtext的字段值保存的是Blob(Binarylargeobjects),所以在导出sql或者将sql查询导出为其他格式的数据时,需要提前将字段类型转换一下,转换方式:使用MySQL的CAST()函数或者CONVERT()函数。语法:CAST(valueastype);CONVERT(value,type);示例:…

    2022年5月14日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号