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

Macos Mac命令-检查USB上的可用空间?,macos,shell,Macos,Shell,我必须检查很多usb,所有的usb上都应该有相同的文件。但由于我是windows用户,我不知道如何在mac上自动执行以下操作(如windows上的批处理): 检查设备上的可用空间 如果等于某个值,则给出 弹出设备 这在mac上可能吗 提前谢谢 您可以使用df命令找到以千字节为单位的可用空间: df -k /Volumes/label | tail -n +2 | awk '{ print $4 }' 由于需要使用该数字,因此需要将其分配给变量: FREE=$(df -k /Volumes/

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

  • 检查设备上的可用空间
  • 如果等于某个值,则给出
  • 弹出设备
这在mac上可能吗


提前谢谢

您可以使用
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
命令找到以千字节为单位的可用空间:

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
手册页:





您想怎么做?我的意思是从命令行或者你想使用GUI。我问这个问题,就像你提到你以前使用过Windows一样。就像Windows上的一批一样,我不知道这在macIf GUI上是如何工作的,请将USB连接到Mac。如果检测到,请检查是否已安装并显示在桌面上。从行为上看,它应该如此!如果没有,您可能必须安装ntfs-3g,以防您的USB有ntfs文件系统。如果检测到,只需右键单击驱动器,单击“获取信息”即可获取与磁盘空间相关的信息。要弹出它,只需右键单击它并单击“弹出”。我不明白你的第二点。你介意详细解释一下吗?嗯。如果你想要类似于它的批处理,你可以考虑编写一个shell脚本并执行它来获取信息。使用“df-h”获取磁盘空间信息。“umount”从/卷中弹出磁盘。您也可以使用“diskutil eject”来弹出它。对不起,我在这个问题上犯了一个错误!我想做一些类似于自动完成的批处理的东西,我认为windows批处理是可能的,但我不知道如何在mac上完成。你想怎么做?我的意思是从命令行或者你想使用GUI。我问这个问题,就像你提到你以前使用过Windows一样。就像Windows上的一批一样,我不知道这在macIf GUI上是如何工作的,请将USB连接到Mac。如果检测到,请检查它是否已装载并显示在桌面上。从行为上看,它应该如此!如果没有,您可能必须安装ntfs-3g,以防您的USB有ntfs文件系统。如果检测到,只需右键单击驱动器,单击“获取信息”即可获取与磁盘空间相关的信息。要弹出它,只需右键单击它并单击“弹出”。我不明白你的第二点。你介意详细解释一下吗?嗯。如果你想要类似于它的批处理,你可以考虑编写一个shell脚本并执行它来获取信息。使用“df-h”获取磁盘空间信息。“umount”从/卷中弹出磁盘。您也可以使用“diskutil eject”来弹出它。对不起,我在这个问题上犯了一个错误!我想做一些类似于自动完成的批处理的东西,我认为windows批处理是可能的,但我不知道如何在mac上完成。谢谢,它们都来自同一个制造商。Bu因为我是mac的新手,不想每次都在终端上输入这个:我如何将它保存为可执行文件?我已经添加了相关手册页的参考。查看Shell脚本入门,了解编写Shell脚本的介绍。谢谢,它们都来自同一家制造商。Bu因为我是mac的新手,不想每次都在终端上输入这个:我如何将它保存为可执行文件?我已经添加了相关手册页的参考。有关编写Shell脚本的介绍,请参阅Shell脚本入门。