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

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

前言

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

ls命令

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

  • [email protected]:~/styfiles$ ls
    demo.sh  fastAI  pythonFile  styNet  teamviewer_amd64.deb

ls -a

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

  • [email protected]:~/styfiles$ ls -a
    .  ..  demo.sh  fastAI  .ipynb_checkpoints  pythonFile  styNet  teamviewer_amd64.deb

ls -l

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

[email protected]:~/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的基础上还可以显示隐藏文件

[email protected]:~/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命令

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

[[email protected] 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只显示总和的大小

[email protected]:~/styfiles$ du -s
2747588 .

du -s *

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

[email protected]:~/styfiles$ du -s *
4       demo.sh
2722128 fastAI
15292   pythonFile
24      styNet
10132   teamviewer_amd64.deb

du -s * | sort -nr

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

[email protected]:~/styfiles$ du -s * | sort -nr
2722128 fastAI
15292   pythonFile
10132   teamviewer_amd64.deb
24      styNet
4       demo.sh

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

[email protected]:~/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大小了却排到了最后面,这显示不是我们想要的

[email protected]:~/styfiles$ du -sh * | sort -nr
24K     styNet
15M     pythonFile
9.9M    teamviewer_amd64.deb
4.0K    demo.sh
2.6G    fastAI

我的DIY_Bash

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

[email protected]:~/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显示当前文件的路径是多少,比如我的电脑的路径是:

[email protected]:~/DIY_Bash$ pwd
/media/home/sty/DIY_Bash

然后我们打开~/.bash_profile

[email protected]:~$ vim ~/.bash_profile

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

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

然后执行下面的命令

source ~/.bash_profile

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

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

注意

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

[email protected]:~$ sort_file.sh
-bash: /media/home/sty/DIY_Bash/sort_file.sh: Permission denied

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

 chmod +x *

原文地址:https://www.cnblogs.com/lxwphp/p/11348036.html

时间: 2024-10-24 03:32:04

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

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

点击browserFilesystem,和命令查看结果一样 当我们查看hadoop源码时,我们看到hdfs下的hdfs-default.xml文件信息 我们查找${hadoop.tmp.dir}这是引用变量,肯定在其他文件有定义,在core-default.xml中查看到,这两个配置文件有个共同点: 就是不要修改此文件,但可以复制信息到core-site.xml和hdfs-site.xml中修改 usr/local/hadoop 是我存放hadoop文件夹的地方 几个关于namenode的重要文

du命令的使用-----查看当前目录下的文件信息

du命令的使用-----查看当前目录下的文件信息 1.du 参数: (1)  du -a  (2) du -s (3) du -k (4) du -m (5)du -g (6) du -l (7) du -r (8) du -x (9) du -H (10)du -L 注意: du -某参数 后面可以添加文件名字,表示查看指定文件的信息,如果不写,默认是当前目录下所有文件信息. (1)  du -a :为每个指定文件显示使用磁盘的情况.或为每个目录显示使用磁盘的情况.注意 该参数与 du -s的

linux系统调优-存储(内存、硬盘)

首先一个基本概念:                ?存储系统存储速度的快->慢:       内存->闪存->磁盘 因为内存的价格限制以及操作系统支持的限制,我们只能从磁盘这块来看,可见磁盘正是存储系统的最大瓶颈所在. **下面具体提出我们的优化方案 优化方案1.缓存机制: 我们在磁盘里嵌入一小块高速的内存,用以保持常用的数据,我们称它为缓存.这样既可以使用磁盘,也能提高性能 缓存分为3类 Filestem cache.Diskcache.Disk controller cache.这里

linux系统中挂载存储

正确的挂载光盘 在将光盘连上linux系统之后,需要将其挂载上正确做法是先使用df -h命令查看光驱的文件系统名称,一般默认是/dev/sr0,然后再创建你想挂载的文件目录,mkdir -p /mnt/cdrom 再使用命令 mount /dev/sr0 /mnt/cdrom  可以顺利将该光盘挂载到cdrom目录下面 2.正确的挂载新添加的存储 在磁盘添加之后 直接使用fdisk -l查看所有的磁盘信息(包括已挂载的和未挂载的) 在看到有未分区的磁盘之后 直接使用 fdisk /dev/sdb

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

点击browserFilesystem.和命令查看结果一样 当我们查看hadoop源代码时,我们看到hdfs下的hdfs-default.xml文件信息 我们查找${hadoop.tmp.dir}这是引用变量,肯定在其它文件有定义.在core-default.xml中查看到,这两个配置文件有个共同点: 就是不要改动此文件,但能够复制信息到core-site.xml和hdfs-site.xml中改动 usr/local/hadoop 是我存放hadoop目录的地方 几个关于namenode的关键文

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

File参数实际上是一个目录,就要报告该目录内的所有文件.如果没有提供 File参数,du命令使用当前目录内的文件. 如果File参数是一个目录,那么报告的块的数量就是分配到目录中文件以及分配到目录自身的块之和. 指定-a标志,报告个体文件中块数量.不管是否使用了-a标志,由File参数指定的个体文件总是要列出. 指定-s标志,报告用于所有指定文件和目录中所有文件的全部块. 块计数包括每个文件的间接块.块计数是通过 512 字节单位计算的,它与系统使用的群集大小无关.指定-k标志,通过 1024

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

u 命令 用途 概述磁盘使用. 语法 du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L ][ File ... ] 描述 du命令显示用于文件的块的数量.如果指定的File参数实际上是一个目录,就要报告该目录内的所有文件.如果没有提供 File参数,du命令使用当前目录内的文件. linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多

linux系统各目录存储的文件类型

/etc 存储各种配置文件 /etc/init.d/ 目录下包含许多系统各种服务的启动和停止脚本.具体可见:http://blog.csdn.net/gongweijiao/article/details/8196827 /var 存储各种变化的文件,比如log

如何快速在Linux系统的硬盘上创建大文件

dd 命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个 1000M 的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 2. 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以 dd if=/dev/zero of=test bs=1M count=0 s