2014-01-13 41 views
1

我正在運行一些經常吃掉我的磁盤空間的操作。出於這個原因,我希望我的電腦在磁盤空間低於2GB時發出聲音。我知道我可以通過運行df -h得到一個輸出列表的免費磁盤空間:如何獲得Bash當前的可用磁盤空間?

Filesystem          Size Used Avail Capacity iused  ifree %iused Mounted on 
/dev/disk1          112Gi 100Gi 12Gi 90% 26291472 3038975 90% /
devfs           191Ki 191Ki 0Bi 100%  663   0 100% /dev 
map -hosts          0Bi 0Bi 0Bi 100%   0   0 100% /net 
map auto_home         0Bi 0Bi 0Bi 100%   0   0 100% /home 

但是當可用空間低於我不能用這個輸出的if-then語句,這樣我可以播放聲音2GB。

有誰知道我如何才能得到可用空間而不是完整的輸出?

回答

2

首先,可用磁盤空間取決於您正在使用的分區/文件系統。下面的命令將在當前文件夾打印可用磁盤空間:

TARGET_PATH="." 
df -h "$TARGET_PATH" | awk 'NR==2{print $4}' 

TARGET_PATH是你即將寫入的文件夾。 df自動檢測文件夾所屬的文件系統。

+2

從'df'選項中刪除'-h'會在這裏幫助:'df。 | awk'NR == 2 {if($ 4 <= 2 * 1024 * 1024)print「可用空間<2 GB \ a」}'' – anishsane

+0

哦,是的。我沒有看到'> 2GB'的限制。 – hek2mgl

+1

甚至是'$ df --output = avail。 | awk'NR == 2 && $ 0 <= 2 * 2 ** 20 {print'可用空間<= 2 GB \ a「}''。 –

0

這是唯一可移植的方法(Linux和Mac OS)中,我能得到的可用磁盤空間量:

df -Pk . | sed 1d | grep -v used | awk '{ print $4 "\t" }' 

注意df從Linux是比Mac上的一個不同OS(OS X),它們只共享有限的選項。

這將返回可用磁盤空間量千字節。不要嘗試使用不同的措施,因爲它們的選項不可移植。

相關問題