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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java该怎么自学?[通俗易懂]

    java该怎么自学?[通俗易懂]java如何自学java该怎么自学?传智播客-黑马程序员-Java每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。学习Java的第一步是安装好JDK写一个Hello?World,其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是的问题,其实从原理上来说,是要搞清楚

    2022年7月7日
    27
  • 嵌入式程序员面试题

    接着上一篇博文,说说这次找工作面试遇到的面试题。腾讯,面试职位:后台服务器工程师,大概有七八到笔试题,只能凭印象写出还记得的一些题目1.const的用法2.大小端问题3.二叉排序树的插入4.应用题,一台服务器一分钟的访问量是200W次,要求每隔五到十分钟提示重复登录的用户,请提供设计思路和算法其他一些公司的面试题:1.整型转字符串的实现(不使用库函数)

    2022年4月9日
    40
  • cdr9导出对话框遮挡怎么办_sldprt文件ug怎么打开

    cdr9导出对话框遮挡怎么办_sldprt文件ug怎么打开说明因为之前旧项目采用的是MFC+BCG界面库的方法实现的。维护旧项目过程中,遇到选择文件对话框没有从默认位置选择的问题,学习和思考后,问题得到解决,特此记录。原来的BCG中配置选择的方法是这样的: lpszDefExt=_T(“DAT”); lpszFilter=_T(“文件|*.dat|\ 文件|*.bln|\ 文件|*.xyz|\ 文件|*.txt||”); m_editDataName.EnableFileBrowseButton(

    2022年10月8日
    2
  • ElasticSearch数据库(ES数据库)简介

    ElasticSearch数据库(ES数据库)简介一elasticsearch简介**ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。**Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。1elasticSearch的使用场景1、为用户提供按关键字查询的全文搜索功能。2、实现…

    2022年4月28日
    83
  • 二叉树的五大性质及证明「建议收藏」

    二叉树的五大性质及证明「建议收藏」二叉树(BinaryTree)定义:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。特点:每个结点至多只有两棵子树(二叉树中不存在度大于2的结点)五种形态: 1.性质1性质1 在二叉树的第i层至多有2^(i-1)个结点。(i>=1) [用数学归纳法证明]  …

    2022年5月18日
    42
  • string转jsonstring_java json转map

    string转jsonstring_java json转mapJava中Json转string方法Java利用Json-lib包进行json对象转换成stringJSONArray转换string方法实例publicstaticvoidmain(String[]args)throwsJSONException{undefined//创建JSONObject对象JSONObjectjson=newJSONObject();//向json中添加数据json.put(“username”,”wanglihong”);json

    2025年10月6日
    3

发表回复

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

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