前言

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

ls命令

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

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

ls -a

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

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

ls -l

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

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

ll

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

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

du命令

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

  1. [root@localhost test]# du
  2. 608 ./test6
  3. 308 ./test4
  4. 4 ./scf/lib
  5. 4 ./scf/service/deploy/product
  6. 4 ./scf/service/deploy/info
  7. 12 ./scf/service/deploy
  8. 16 ./scf/service
  9. 4 ./scf/doc
  10. 4 ./scf/bin
  11. 32 ./scf
  12. 8 ./test3
  13. 1288 .

du -s

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

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

du -s *

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

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

du -s * | sort -nr

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

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

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

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

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

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

我的DIY_Bash

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

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

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

  1. #!/bin/sh
  2.  
  3. # description: Sort the files in your directory by size, and Display their storage size directly
  4. # user: sty
  5. # blog: https://blog.csdn.net/sty945
  6. # github: https://github.com/sty945
  7.  
  8. 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显示当前文件的路径是多少,比如我的电脑的路径是:

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

然后我们打开~/.bash_profile

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

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

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

然后执行下面的命令

  1. source ~/.bash_profile

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

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

注意

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

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

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

  1. chmod +x *

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

  1. du -sh*查看当前目录下的文件夹大小

    du -sh*查看当前目录下的文件夹大小   u 命令    用途    概述磁盘使用.    语法  du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] ...

  2. windows,cmd中查看当前目录下的文件及文件夹

    需求描述: 在使用cmd的过程中,有的时候需要查看当前目录下有哪些文件或者文件夹,类似linux下的ls命令 操作过程: 1.通过dir命令查看当前目录下有哪些的文件及文件夹 备注:通过dir命令,就 ...

  3. Centos下查看当前目录大小及文件个数

    查看目录及其包含的文件的大小 du -ch directory 查看当前目录下文件的个数 ls -l | grep "^-" | wc -l 查看当前目录下以.jpg为后缀文件的个 ...

  4. linu查看当前目录下文件大小

    查看当前目录下文件大小 [root@izm5e33l0ge76tvdj3qtnfz var]# du -sh * .0K adm 190M cache .0K crash 24K db .0K emp ...

  5. 查看当前目录下文件个数: $find ./ | wc -l

    2.1. 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file目录 删除日志 rm *log (等价: $find ./ -name "*log" -ex ...

  6. linux系统各种日志存储路径和详细介绍

    Linux常见的日志文件详述如下1./var/log/boot.log(自检过程)2./var/log/cron (crontab守护进程crond所派生的子进程的动作)3./var/log/mail ...

  7. 裸板中中断异常处理,linux中断异常处理 ,linux系统中断处理的API,中断处理函数的要求,内核中登记底半部的方式

    1.linux系统中的中断处理  1.0裸板中中断异常是如何处理的?     以s5p6818+按键为例          1)按键中断的触发        中断源级配置            管脚功 ...

  8. Linux查看当前目录下文件夹和文件的大小

    File参数实际上是一个目录,就要报告该目录内的所有文件.如果没有提供 File参数,du命令使用当前目录内的文件. 如果File参数是一个目录,那么报告的块的数量就是分配到目录中文件以及分配到目录自 ...

  9. hadoop源代码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置

    点击browserFilesystem,和命令查看结果一样 当我们查看hadoop源代码时,我们看到hdfs下的hdfs-default.xml文件信息 我们查找${hadoop.tmp.dir}这是 ...

随机推荐

  1. MySQL Innodb--共享临时表空间和临时文件

    在MySQL 5.7版本中引入Online DDL特性和共享临时表空间特性,临时数据主要存放形式为: 1.DML命令执行过程中文件排序(file sore)操作生成的临时文件,存储目录由参数tmpdi ...

  2. c# Regex类

  3. 关于视频解码总结--JavaCV

    关于视频解码的所收集资料进行总结 前言:内容不全,但有一定参考性! 关于java后台视频解码 进行js将视频每秒或更低裁截传输,后台使用最优方案(自己感觉): JavaCV(点击进入) 缺点:整合工具 ...

  4. 文件系统属性chattr权限

    命令格式 chattr [+-=] [选项] 文件名或目录名 + 增加权限 - 删除权限 = 等于某权限 i 如果对文件赋予i权限,那么不允许对文件进行删除.改名,也不能添加.修改数据:如果对目录添加 ...

  5. OPENWRT使用华为 E353/E3131的4G转WIFI路由器作为WAN接口上网(笔记)

    参考文档: http://www.yizu.org/archives/721/ 原来使用Hilink模式真的很简单 1.安装一些包: opkg install kmod-usb-net-rndis k ...

  6. vscode 上安装 leetcode插件

    vscode 真是一款非常好的轻量级的代码编辑工具,无论windows还是ubuntu使用体验都非常好. leetcode用来练练脑子吧,不要老年痴呆了. 1. 安装vscode Ubuntu先去下载 ...

  7. 分布式调度平台XXL-JOB源码分析-调度中心

    架构图 上图是我们要进行源码分析的2.1版本的整体架构图.其分为两大块,调度中心和执行器,本文先分析调度中心,也就是xxl-job-admin这个包的代码. 关键bean 在application.p ...

  8. 《你说对就队》第八次团队作业:Alpha冲刺

    <你说对就队>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> 作业学习 ...

  9. test20190827 NOIP2019 模拟赛

    100+100+50=250.最后那道期望题需要用另外的方式统计. 精灵加护 ljss 被 M 个敌人打倒在地上啦!每个敌人有一个威力值 bi.但是他手中还拥有 N 把武器!每把武器有一个威力值 ai ...

  10. Dubbo官方文档

    官方文档:http://dubbo.apache.org/en-us/docs/user/quick-start.html