Mac命令 - 检查USB上的可用空间?

时间:2014-04-11 06:11:47

标签: macos shell

我必须检查很多usb,所有这些文件都应该有相同的文件。但因为我是Windows用户,我不知道如何在mac上自动执行以下操作(如Windows上的批处理):

  • 检查设备上的可用空间
  • 如果等于值
  • ,则给出
  • 弹出设备

这甚至可以在Mac上使用吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

您可以使用df命令找到以千字节为单位的可用空间:

df -k /Volumes/label | tail -n +2 | awk '{ print $4 }'

由于您需要使用该号码,因此您需要将其分配给变量:

FREE=$(df -k /Volumes/Label | tail -n +2 | awk '{ print $4 }')

然后你可以将它与另一个数字进行比较:

if [ $FREE -eq 12345678 ]
then
    # matches
else
    # doesn't match
fi

最后弹出音量:

umount /Volumes/Label

但请注意,检查可用空间可能不是最强大的方法。不同制造商的闪存驱动器的大小略有不同,即使它们的标称容量相同。此外,闪存随着使用而降级,并且有缺陷的块可能会重新映射到工作模块,从而进一步降低了驱动器的总容量。即使您拥有相同的内容,可用空间也可能不同。

如果您确实有一个包含闪存驱动器所需文件的模板目录,则可以将其与驱动器的内容进行比较:

diff -qr /Volumes/Label /template/directory

这将打印出所有差异,但您也可以根据是否存在差异采取行动,放弃diff的实际输出:

if diff -qr /Volumes/Label /template/directory > /dev/null
then
    # directories are the same
else
    # contents differ
fi

手册页:

df
umount
diff
Shell Scripting Primer