Answers:
有关文件系统比较的信息,请参见Wikipedia页面,尤其是在“ 最大文件名长度”一栏中。
以下是流行文件系统中的一些文件名长度限制:
BTRFS 255 bytes
exFAT 255 UTF-16 characters
ext2 255 bytes
ext3 255 bytes
ext3cow 255 bytes
ext4 255 bytes
FAT32 8.3 (255 UCS-2 code units with VFAT LFNs)
NTFS 255 characters
XFS 255 bytes
我在这里读到,路径长度限制在系统标题中。文件名长度限制也存在。在我的系统上,它是文件:
/usr/src/linux-headers-2.6.38-10/include/linux/limits.h
C语言定义:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
还有更多。
我指的是其他答案,请支持。
Linux上是否有文件名或路径长度限制?
是的,文件名和路径名的长度受以下限制:
要动态获取这些属性:
pathconf
,fpathconf
由Michael Aaron Safyan提出使用timgetconf
提议的命令,该命令在Linux上也可用:
$ getconf NAME_MAX /mnt/sda2/
255
$ getconf PATH_MAX /mnt/sda3/
4096
为了节省时间(并将其锚定到内存中):
ext2,ext3,ext4,zfs:无路径名限制;255个字节的文件名限制。
PATH_MAX = 4096
。如果您的程序能够使用相对路径,并且您先更改工作目录,则可以解决该问题。
这些是文件系统名称的长度。“ linux”本身也有一些。例如,从bits / stdio_lim.h:
# define FILENAME_MAX 4096
locate
。
有没有办法来确定在便携式方式的Linux上的最大路径长度。在我的系统上:
$ getconf PATH_MAX /
4096
$ getconf _POSIX_PATH_MAX /
4096
但是我可以轻松地创建长度超过4096个字符的路径。而是PATH_MAX
视为下限。您可以保证能够创建这么长的路径,但也可以创建更长的路径。
os.pathconf()
模块将有一些答案;如果Python端口是好的,那应该是合理的。
在系统limits.h头文件中指定。
这是这些文件之一:
cat /usr/include/linux/limits.h
...
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
...
这是此文件副本的位置以及它们定义的值:
find /usr | grep limits.h | xargs -I {} grep -H 'NAME_MAX' {}
输出:
...
/usr/include/linux/limits.h:#define NAME_MAX 255 /* # chars in a file name */
...