如何查找目录或分区目录中的空间量

时间:2011-10-26 15:50:29

标签: file bash unix filesystems directory

我想写一个用音乐填充目录的脚本,直到剩下一定的空间。该目录可能位于各种分区上,我不知道如何向目录询问可用空间或它的分区。

pseudocode
fill(directory)
  until < 100 mb of free space in directory
    copy music to directory

你会如何使用像bash,find等unix工具那样做呢?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

我认为你的意思是你有一个特定的目录,在你想要填充的特定分区上,直到只剩下100 MB。

df命令将返回给定目录的磁盘/分区上剩余的磁盘空间量。

df musicfolder/

第四列将提供空闲空间

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1            151733412  24153792 119871924  17% /

您可以使用awk获取第四列值并忽略标题。所以你的脚本将是这样的:

freespace=$(df /musicfolder | awk 'FNR>1{print $4}')

while [ $freespace -gt 10000000 ] ; do
    (copy files from wherever)
    freespace=$(df ~/musicfolder | awk 'FNR>1{print $4}')
done