linux一个文件夹内最多能放多少文件

linux一个文件夹内最多能放多少文件,第1张

linux的ext3文件系统一级子目录的个数默认为31998(个),准确地说是32000个。

Linux为了cpu的搜索效率而规定的,要想改变数目限制需要重新编译内核。在kernel代码中有这样的:

include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000

include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000

什么说31998个呢?这是因为mkdir创建一个目录时,目录下默认就会创建两个子目录的,一个是.目录(代表当前目录),另一个是..目录(代表上级

目录)。这两个子目录是删除不掉的,“ rm . ” 会得到“rm: cannot remove `.' or

`..'”的提示。所以32000-2=31998。

ext3文件系统下单个目录里的最大文件数无特别的限制,是受限于所在文件系统的inode数。

在一个目录下,touch了100万个文件是没有问题的。但是肯定会受到所在文件系统的inode数的限制。

df -i /dev/sdaX或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令输出结果是一样的,但是跟df所得出的可用inode数会有些误差。

网上有两种解决inode数限制的办法如下

2.1 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)

2.2

使用loopback文件系统临时解决:在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统

中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。

有的,统所能生成的总的文件数受系统所剩节点数限制,执行

tune2fs -l /dev/sda1(目录所在的分区) |grep inodes

可以查看剩余节点数

在一台ext3的系统中执行,结果为 这是我机子上的剩下inode数。

Free inodes: 845504

当然这个数足够大了。。

cpabe使用方法比较简单,一共就四个命令行指令。

1].cpabe-setup

生成master_key,pub_key 

2].cpabe-keygen,cpabe-keygen [OPTION ...] PUB_KEY MASTER_KEY ATTR [ATTR ...]

输入公钥、主钥、用户的属性作为参数,生成用户的私钥

cpabe-keygen -o lyy_private_key pub_key master_key sysadmin 'age = 22'

这里有一个坑,age=22中间的空格不能省略,不然会解析错误

3].cpabe-enc,cpabe-enc [OPTION ...] PUB_KEY FILE [POLICY]

加密文件,生成一个.cpabe后缀的文件,

在加密时指定属性策略policy,只有属性满足policy的用户可以解密这个文件。

4].cpabe-dec,cpabe-dec [OPTION ...] PUB_KEY PRIV_KEY FILE

解密文件,使用特定用户的私钥进行解密,如果该用户属性不满足policy,会返回解密失败。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7605176.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存