(bash) 如何找到文件系统支持的最大文件大小?

Ras*_*att 6 linux filesystems bash fuse fat32

(bash) 对于特定目录,我需要发现该文件系统支持的最大文件大小。有问题的文件系统可能是从外部 USB 介质挂载的,可能是 FAT32、NTFS、exfat 或 ext2。

我知道我可以部分猜测来自 的信息mount,但我想要一个更清晰的解决方案 - 加上在mountexfat的情况下,将文件系统类型显示为“fuseblk”。

(我正在运行 Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux)


getconf FILESIZEBITS path不适用于fuseblk安装 exfat 文件系统:它返回 32,这是不准确的。所以这不是一个通用的解决方案。

cni*_*tar 5

我想你可以用getconf /path这个。在它打印的众多尺寸中,还有FILESIZEBITS. APUE是这样说的:

将指定目录中允许的常规文件的最大大小表示为有符号整数值所需的最小位数

有一些问题getconf不会返回特定于文件系统的信息:

getconf 原则上不能回答这样的问题,因为它依赖于文件系统。

事实并非如此:

[cnicutar@lux ~]$ getconf FILESIZEBITS /some/fuseblk/mount
32

[cnicutar@lux ~]$ getconf FILESIZEBITS /
64
Run Code Online (Sandbox Code Playgroud)