最近幾乎大部分工做都在linux上進行的,發如今工做過程當中常常要查看當前目錄下的文件大小,可是每次都是用ls
命令每次都是以字節形式顯示的,看起來特別不爽。因而開始了再linux下如何看起來很爽文件顯示之旅。python
這個命令多是咱們在linux環境下最經常使用的命令了,閒來沒事, ls
一下。用ls
命令查看文件夾下的文件信息通常是這樣的linux
sty@dl-server01:~/styfiles$ ls demo.sh fastAI pythonFile styNet teamviewer_amd64.deb
咱們只能看見文件夾下的顯示當前目錄下非隱藏的文件與目錄信息
咱們用ls -a
顯示當前目錄下包括隱藏文件在內的全部文件列表git
sty@dl-server01:~/styfiles$ ls -a . .. demo.sh fastAI .ipynb_checkpoints pythonFile styNet teamviewer_amd64.deb
咱們用ls -l
輸出長格式列表,信息包含了文件的大小和類型github
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
,這個在ls -l
的基礎上還能夠顯示隱藏文件shell
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
這個命令主要是顯示目錄或者文件所佔空間vim
[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
只顯示總和的大小bash
sty@dl-server01:~/styfiles$ du -s 2747588 .
使用du -s *
將顯示全部文件的大小markdown
sty@dl-server01:~/styfiles$ du -s * 4 demo.sh 2722128 fastAI 15292 pythonFile 24 styNet 10132 teamviewer_amd64.deb
使用du -s * | sort -nr
咱們能夠將文件從大到小顯示出來spa
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
可是我想要的結果是這樣的:
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,鼓勵我一下
咱們從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 *