Linux文件名称的长度限制是255个字符

 

windows下全然限定文件名称必须少于260个字符,文件夹名必须小于248个字符。

 

linux下文件数、文件夹数、文件名称长度的各种限制

下面測试都是在没有优化或改动内核的前提下測试的结果

1. 測试目的:ext3文件系统下filename最大字符长度

  測试平台:RHEL5U3_x64

  測试过程:

LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done`

touch $LENTH

当添加到256时,touch报错,File name too long

linux系统下ext3文件系统内给文件/文件夹命名,最长仅仅能支持127个中文字符,英文则能够支持255个字符

2. 測试目的:ext3文件系统下一级子文件夹的个数限制

  測试平台:RHEL5U3_x64

  測试过程:

[root@fileserver maxdir]# for i in {1..32000};do mkdir $i;done

mkdir: cannot create directory `31999': Too many links

mkdir: cannot create directory `32000': Too many links

ext3文件系统一级子文件夹的个数为31998(个)。

Linux为了cpu的搜索效率而规定的,要想改变数目大概要又一次编译内核. 

3. 測试目的:ext3文件系统下单个文件夹里的最大文件数

  測试平台: RHEL5U3_x64

  測试过程:

  单个文件夹下的最大文件数似乎没什么特别限制,也是受限于所在文件系统的inode数限制:

  df -i或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令 

  输出结果是一样的,可是跟df所得出的可用inode数会有些误差,至今不明确什么原因。

  网上经常使用两种解决的方法:

  1) 又一次mkfs,ext3默认block大小4096 Bytes,block设置小一些inode数设置大一些

  2) 使用loopback文件系统暂时解决:

      在/usr中(也能够在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个

      文件系统中,并将它mount到/usr下合适的位置。这样能够大大降低你/usr中的文件数目。可是系统

      性能会有点损失。

4. 測试目的: 打开文件数限制(文件句柄、文件描写叙述符)

  測试平台: RHEL5U3_x64

  ulimit -n 65535设置,或者/etc/security/limit.conf里设置用户打开文件数、进程数、CPU等