如何使用 Perl 找到已安装卷上的可用空间?
我正在尝试解压一个文件。 在解压之前,我想知道已安装卷上的可用空间。 计划是如果没有足够的空间我不会解压它! 那么如何使用 Perl 找到已安装卷上的可用空间呢? 顺便说一句,我使用 Perl 进行 tar 和 untar。
每个人都在谈论 df 和 dh ,但这些命令在挂载点上不起作用。 如果我想找到可以在安装点上写入的可用空间怎么办?
I'm trying to untar a file. Before untarring I would like to know free space available on the mounted volume. The plan is if there is not enough space I will not untar it! So how can I find the free space available on a mounted volume using Perl? By the way, I'm using Perl for tar and untar.
Everybody is saying about df
and dh
but these commands doesn't work on the mount points. What if I want to find the free space that I can write into on a mounted point?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可能需要 CPAN 模块 Filesys::DfPortable。
You likely want the CPAN module Filesys::DfPortable.
使用 shell 命令生成 Perl 可以使用的单个无 K 编号:
更改到要解压的目录(如果尚未存在)并执行:
或替换“.” 与实际的安装点。
grep 去掉标题,awk 打印出可用于分割线和非分割线的千字节数。
这是基于以下类型的输出,如果您的 UNIX 输出不同的内容,您可能需要进行调整:
Using shell commands to generate a single K-free number which Perl can use:
Change into the directory where you want to untar (if not already there) and execute:
Or replace "." with the actual mount point.
The grep gets rid of the header and the awk prints out the kilobytes available for both split and no-split lines.
This is based on the following sort of output, you may have to adjust if your UNIX outputs something different:
您可以使用内置的 linux 命令来获取结果:
You could just use built-in linux commands to get the result:
尝试 Filesys::DF (posix 系统)或 Filesys::DfPortable(也适用于 Windows)。 它们都使用本机代码来枚举 FS 统计信息。
Try Filesys::DF (posix system) or Filesys::DfPortable (Windows also). They both use native code to enumerate FS statistics.