如何使用Perl找到已安装卷上的可用空间?

Ram*_*Ram 6 perl diskspace

我正在尝试解压文件.在解开之前,我想知道已安装卷上的可用空间.计划是如果没有足够的空间我不会解开它!那么如何使用Perl找到已安装卷上的可用空间?顺便说一下,我使用Perl作为焦油和解压缩.

每个人都在说df,dh但这些命令在挂载点上不起作用.如果我想在安装点上找到可以写入的可用空间怎么办?

cha*_*aos 13

您可能想要CPAN模块Filesys :: DfPortable.


pax*_*blo 3

使用 shell 命令生成 Perl 可以使用的单个无 K 数:

切换到您想要解压的目录(如果还没有)并执行:

df . | grep -v '^Filesystem' | awk 'NF=6{print $4}NF==5{print $3}{}'
Run Code Online (Sandbox Code Playgroud)

或者替换“.” 与实际的安装点。

grep 去掉标题,awk 打印出可用于分割线和非分割线的千字节数。

这是基于以下类型的输出,如果您的 UNIX 输出不同的内容,您可能需要进行调整:

文件系统 已使用 1K 块 可用 使用% 安装于
/dev/sda4 206434224 56965356 139065176 30% /
varrun 1037296 132 1037164 1% /var/run
varlock 1037296 0 1037296 0% /var/lock
udev 1037296 68 1037228 1% /dev
devshm 1037296 12 1037284 1% /dev/shm
/dev/sda2 93327 43535 44973 50% /boot
/dev/sdc1 155056484 29417456 117824612 20% /media/extra160
gvfs-fuse-守护进程
              206434224 56965356 139065176 30% /home/pax/.gvfs

  • 使用 cpan 模块来做到这一点是正确的方法。你想在不必要的时候避免 shell 调用...... (2认同)