Bash 获取目录上的总空间和剩余空间以及其中所有目录的大小

Bash 获取目录上的总空间和剩余空间以及其中所有目录的大小,bash,shell,Bash,Shell,我提出了一个单行脚本,它给出了如下文件大小。我试图找到一种方法来显示总磁盘空间以及目录上的剩余空间 du -sh * | sort -hr 12G lithium 11G sodium 160M soking 期望如下所示(free和total是粗略的数字)。不需要这样,但我在两列中查找所有值。我正在将此数据导出到上游应用程序 12G lithium 11G sodium 160M soking 55G total space 22G

我提出了一个单行脚本,它给出了如下文件大小。我试图找到一种方法来显示总磁盘空间以及目录上的剩余空间

du -sh * | sort -hr

12G     lithium
11G     sodium
160M    soking
期望如下所示(free和total是粗略的数字)。不需要这样,但我在两列中查找所有值。我正在将此数据导出到上游应用程序

12G     lithium
11G     sodium
160M    soking
55G     total space
22G     free space
谢谢大家!

使用awk:

awk -v fs="/" 'NR==FNR { print;if ($6==fs) { tot=$2;avail=$3 } next} END { printf "%s\ttotal space\n",tot; printf "%s\tfree space\n",avail; }' <(du -sh * | sort -hr) <(df -h)

awk-v fs=“/”'NR==FNR{print;if($6==fs){tot=$2;avail=$3}next}END{printf”%s\ttotottal space\n“,tot;printf”%s\tfree space\n“,avail;}你说目录上剩余的空间是什么意思?有意义的是磁盘上的剩余空间。是的,我有一个名为
“/apps/newone”
的目录。实际大小为
/apps
装载量为89G,在最消耗目录下为
newone
。在newone下有多个目录,我感兴趣的是计算
/apps
挂载上的已消耗空间和剩余空间
12G锂11G钠16G浸泡39G总空间49G自由空间
如果您看到总空间为89G,且newone下的三个目录锂、钠和浸泡消耗了39G空间,这是在
总空间
下显示的。剩下的是50G,其中1G被
/apps
下的其他目录使用,因此可用空间显示为
49G
。希望我在这里详细解释。我已经按原样尝试了命令,使用了
fs=“/”
,我看到的输出与我提到的方式相同,但是空间不正确,因为
74G总空间9%可用空间
消耗的总空间没有加起来,可用空间以百分比表示。是否可能以大小值的形式获取?我所做的是修改了
fs=“/apps/newone/”
,令人惊讶的是我的值是空的总空间可用空间`由于空空间,无法正确格式化。我已修改了答案,我尝试过,但仍然得到相同的空值。我一定错过了什么。你能帮我吗@Raman Sailopalca你能发布df和du命令的输出吗?