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

分类: 365bet足彩网上投注 作者: admin 时间: 2025-10-11 03:20:50 阅读: 8953
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”是不同的东西。

相关推荐