1. 程式人生 > >linux系統下以儲存從大到小並以K,M,G為單位的方式檢視當前目錄下的檔案資訊

linux系統下以儲存從大到小並以K,M,G為單位的方式檢視當前目錄下的檔案資訊

前言

最近幾乎大部分工作都在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]-server01:~/styfiles$ ls -l
total 10148
-rw-rw-r--  1 sty sty      394 45 20:42
demo.sh drwxrwxr-x 5 sty sty 4096 114 18:20 fastAI drwxrwxr-x 12 sty sty 4096 45 21:48 pythonFile drwxrwxr-x 3 sty sty 4096 45 20:26 styNet -rw-rw-r-- 1 sty sty 10374958 1219 15:25 teamviewer_amd64.deb

ll

我平時用的更多的可能是ll,這個在ls -l的基礎上還可以顯示隱藏檔案

[email protected]-server01:~/styfiles$ ll
total 10160
drwxrwxr-x 6 sty sty 4096 45 22:01 ./ drwxr-xr-x 6 sty sty 4096 45 21:57 ../ -rw-rw-r-- 1 sty sty 394 45 20:42 demo.sh drwxrwxr-x 5 sty sty 4096 114 18:20 fastAI/ drwxr-xr-x 2 sty sty 4096 114 16:48 .ipynb_checkpoints/ drwxrwxr-x 12 sty sty 4096 45 21:48 pythonFile/ drwxrwxr-x 3 sty sty 4096 45 20:26 styNet/ -rw-rw-r-- 1 sty sty 10374958 1219 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只顯示總和的大小

[email protected]-server01:~/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]-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 *是可以這麼人性化的顯示的

[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]-server01:~/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

其實這個我們可以通過duawk命令組合完成

#!/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 *

相關推薦

linux系統儲存大到小KMG單位方式檢視當前目錄檔案資訊

前言 最近幾乎大部分工作都在linux上進行的,發現在工作過程中經常要檢視當前目錄下的檔案大小,但是每次都是用ls命令每次都是以位元組形式顯示的,看起來特別不爽。於是開始了再linux下如何看起來很爽檔案顯示之旅。 ls命令 這個命令可能是我們在

Linux檢視當前目錄檔案/目錄數量

1) 統計當前資料夾下檔案的個數: ls -l |grep "^-"|wc -l   2) 統計當前資料夾下目錄的個數: ls -l |grep "^d"|wc -l   3) 統計當前資料夾下檔案的個數,包括子資料夾裡的 : ls -lR|grep

linux ls檢視當前目錄的子目錄總數

第一種: ls -ap | grep "/" | wc -l 解讀: ls - p 會為目錄新增一個/ grep 進行篩選即可 wc -l 統計行數 第二種: ls -al

Windows10在cmd目錄檢視當前目錄檔案(命令:dir)

本文主要介紹Windows10在cmd目錄下,檢視當前目錄下的檔案指令。想要檢視當前指定碟符所在目錄下的檔案,可以敲入如下命令1.1首先敲入命令  D:  則進入D盤目錄,如下圖所示:1.2進入D盤目錄後,敲入命令  dir  則顯示D盤下的所有檔案,如下圖所示:入上所述,在

python檢視當前目錄所有檔案和資料夾

檢視當前目錄所有檔案:import os print(os.listdir('.'))檢視當前目錄所有資料夾:import os path = os.listdir(os.getcwd()) for p in path: if os.path.isdir(p):

Linux(Centos)調整分區大小home和根分區例)

vertical speech col 信息 卸載 記錄 jsb 大小 control 在安裝新系統的時候,有時候沒法預估或者說錯誤的劃分了分區大小,常常會導致我們後面的操作出現極大地不方便,比如某個分區分的太小了,導致 軟件安裝的時候會報安裝空間不夠,這就很麻煩。在

linux查詢當前目錄的所有檔案大小和清空檔案內容命令

  查詢當前目錄下的所有檔案大小:du -sh *  刪除檔案:rm - rf xxx.log 列印日誌:tail -f xxx.log 檢視程序ps -ef | grep java | grep -v grep 殺死客戶端kill -9 14569 - 啟動

Linux系統的CentOS7中配置jupyter遠端登陸

前言 Jupyter是anaconda中自帶非常好用的python互動式筆記本,大部分人在windows下使用Juypter,開啟使用也是本地使用,那本文介紹的是如何在Linux下配置好Jupyter,並遠端登陸。 安裝Juypter 在linux中安裝jup

Linux檢視目錄各個資料夾的大小

df -h 命令檢視磁碟剩餘空間 du -h –max-depth=1 注意:max之前有兩個- -h表示檔案大小單位為G –max-depth=1表示深度為1,即代表當前目錄下一級資料

Linux系統使用mysql命令建立資料庫授權命令

登入Linux伺服器登入MYSQL:mysql -u root -p一、指令碼建立資料庫demodb,並制定預設的字符集是utf8mb4。CREATE DATABASE demodb DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_genera

得用SQL語句生成某個庫所有儲存過程指令碼,每個存一個檔案

DECLARE@sVARCHAR(4000),@nINT,@iINT,@s1VARCHAR(100)SELECTIDENTITY(INT) id,textINTO ##     FROM syscommentsSELECT@n=@@ROWCOUNT,@i=0WHILE@i<@n    BEGIN    

linux系統如何安裝vmware Tools(下面CentOS例)

VMwareTools是VMware虛擬機器中很重要的一個工具包,有些時候在虛擬機器中安裝完作業系統會缺少網絡卡驅動,不能上網,這時只要安裝VMwareTools就可以解決問題,下面以CentOS為例,來說明VMwareTools的安裝方法 1、開啟VMwar

用SQL語句生成某個庫所有儲存過程指令碼,每個存一個檔案

DECLARE @s VARCHAR(4000),@n INT,@i INT,@s1 VARCHAR(100) SELECT IDENTITY(INT) id,text INTO ## FROM syscomments SELECT @[email pr

Linux學習6之shell篩選當前目錄檔案逐個對其進行操作

程式碼: hadoop@Master:~/cloud/adam/xubo/code$ cat a.sh #!/bin/bash #SRR003161h20t1 #samtools view -h -S SRR003161h20t1.sam >SRR003161h

linux系統基本操作——儲存裝置的管理

[root@localhost ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful bef

linux SFTP用戶創建 不允許用戶登錄並且連接只允許在制定的目錄進行操作

重啟 login mil shell man 權限 directory end roo 1.創建用戶 groupadd sftp 2.添加用戶並設置為sftp組 useradd -g sftp -s /sbin/nologin -M sftp (/sbin/nolo

如何在當前目錄快速打開cmd(或者管理員的身份打開)

方便 空白 tutorial light 很多 -1 mage for pen 1.在當前目錄下,按住shift鍵+點擊右鍵,選擇在此處打開命令窗口 很多時候我們需要打開命令行然後進入到相應目錄進行一些操作。 常規的做法是: D:\foo\bar", 然後輸入cd 再把復

n個人戰成一圈依次0~m-1報數誰是m-1就出圈一個人0重新開始 依次迴圈下去直到剩一人。

題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮品箱