‘壹’ linux文件名的长度不能超过多少个字符
题主你好,
这个长度不是绝对的, 但大多数的linux系统:
文件名长度限制是255个字符;
路径名长度限制是4096个字符;
-----
具体情况题主可以在自己电脑上执行以下两个命令看一下自己本地的linux系统这两个长度情况:
文件名最大长度: getconf NAME_MAX /
路径名最大长度: getconf PATH_MAX /
我电脑上的情况:
-----
另外,这个信息其实都在linux一个名叫limits.h的头文件中写着呢, 有兴趣的话,题主自己可以找一下:
find /usr | grep limits.h | xargs -I {} grep -H 'NAME_MAX' {}
find /usr | grep limits.h | xargs -I {} grep -H 'PATH_MAX' {}
=====
希望可以帮到题主, 欢迎追问.
‘贰’ Linux "ls -al"查看 所有目录的文件容量都是4096Bytes是怎么回事
在Linux下一切皆文件,因此目录也是文件。所以,通过ls -al命令显示的目录大小并非常规意义上包含其子文件的总大小,而是单纯指的是目录的大小。这一点和Windows并不一样。
请注意一点,其实Linux下目录的大小并不都是4096的。
那么为什么大部分的目录大小都是4096呢?这需要从Linux文件的存储机制说明。
文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
而Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
所以ls -al命令实际显示的就是目录文件的大小。又因为OS定义的文件最小存取单位“块”(block)是4KB,所以目录一般显示为4096B。
如果你需要看目录的总大小可以用 命令,楼上说的很详细了。
PS:OS系统块的大小是可以修改的。
‘叁’ Linux中-ls的总用量指什么(如图)红方框里面分别的指什么
应该是该目录下所有文件及子目录文件占用的总空间大小 ,不是文件大小