linux中为什么相同目录下生成相同名字的文件和文件夹时候出错

在Linux中,几乎所有内容都是文件描述符。目录是一种特殊类型的文件,从用户的角度来看,它可以保存其他文件。

因此,您不能同时在同一目录中拥有相同的名字。

如果可以的话,编码人员的生活将变得痛苦不堪。当有人要创建目录并检查目录是否存在时,将返回命令“ isDir”。

    filename='out/a/acfg'
    file_dir = os.path.split(filename )[0]
    if not os.path.isdir(file_dir):
        os.makedirs(file_dir)
    if not os.path.exists(filename ):
        os.system(r'touch %s' % filename)

生成了两个文件夹out,a

让那和再生成一个acfg的文件

如果out中有一个文件为a的文件将出错

名称保存在目录条目中,该目录条目链接到对应于文件的inode。

储存文件元信息的区域就叫做inode,中文译名为"索引节点"。文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等

Flash芯片的擦除以块为单位写以页为单位。在每个flash芯片中包括非常多的块,同款芯片上每个块的大小相同(2MB、4MB..),在每个块上包含多个页,每个页大小相同。在每个页面后都跟随着一个附加页,用来对对应页面进行标记或者对页上的数据进行校验,页面通常的大小为2Kb+64byte、512byte+32byte、1024byte+64byte

 

inode包含文件的元信息

  • 文件的字节数
  • 文件的拥有者uid
  • 文件的所属组gid
  • 文件的r、w、x权限
  • 文件的时间戳
    • ctime:文件的inode上一次变动的时间
    • mtime:文件内容上一次变动的时间
    • atime:文件上一次打开的时间
  • 硬链接数
  • 文件数据block的位置
  • ext2文件系统结构

1.        超级块(super block):记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息;

2.        i节点(inode):记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;

3.        block:实际记录文件的内容,若文件太大时会占用多个block。

由于每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码。

Inode索引结构

JFFS2文件系统

JFFS2文件系统以节点方式来管理flash设备上的所有文件,目录也被当作一种普通的文件来管理。有dirent和inode两种节点类型,所有的信息分散的存储与各个节点之中。Dirent形成整个文件系统的层次结构,inode管理构成文件的所有数据(普通节点和meta data节点)

查看源图像

new_inode=self.MakeInode(
                        ino=record['ino'],
                        version=record['version'],
                        mode=record['mode'],
                        uid=record['uid'],
                        gid=record['gid'],
                        isize=record['isize'],
                        atime=record['atime'],
                        mtime=record['mtime'],
                        ctime=record['ctime'],
                        offset=record['offset'],
                        dsize=record['dsize'],
                        compr=record['compr'],
                        usercompr=record['usercompr'],
                        flags=record['flags'],
                        payload=new_data
                    )

顺便说一句:这适用于所有操作系统,而不仅仅是Linux。尽管从桌面的角度来看,操作系统可以向文件或目录添加唯一标识符,然后将其从列表中删除。从命令行的角度来看,这将是有问题的。

在Windows上有一件事:我们使用区分大小写的名称。因此,“ MYFILE”和“ myfile”是不同的东西。

/etc目录Linux系统的一个重要目录,它包含了系统的配置文件。本文将对该目录下各个文件文件夹文件的作用进行详细的介绍。 1. /etc/passwd:记录着系统所有用户的基本信息,包括用户名、用户ID、用户家目录等等。 2. /etc/group:用于管理用户组,其包括用户组的名称、组ID、组内用户等信息。 3. /etc/shadow:记录着系统用户的密码,是系统密钥文件的重要文件。 4. /etc/gshadow:记录着系统用户组的密码,需要root权限才能访问。 5. /etc/fstab:用于存放文件系统的配置信息,包括挂载点、文件系统类型、文件系统选项等。 6. /etc/hosts:用于配置本地网络连接,通常包括IP地址和相关主机名。 7. /etc/network/interfaces:网络接口配置文件,包括IP地址、网关和DNS等信息。 8. /etc/resolv.conf:DNS域名解析配置文件,其包括DNS服务器的IP地址、搜索域名等。 9. /etc/services:记录了系统服务的端口号和名称。 10. /etc/ssh:SSH配置目录,包含SSH服务器和客户端的配置文件。 11. /etc/sysctl.conf:内核参数配置文件,可以修改系统内核的行为。 12. /etc/sudoers:用于配置sudo命令权限的文件,在该文件指定某些用户或用户组有sudo权限。 13. /etc/crontab:定时任务配置文件,用于设置系统启动时运行的命令和脚本。 总之,/etc目录下的文件目录Linux系统的重要配置文件,包括系统相关信息、网络配置、用户权限等等,对于系统的稳定和安全运行非常重要。所以在进行系统管理时,我们需要对这些文件目录有一个全面的了解和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值