大型机 - 更改的文件名的扩展名后缀的名称是啥?
Posted
技术标签:
【中文标题】大型机 - 更改的文件名的扩展名后缀的名称是啥?【英文标题】:mainframe - what is the name of extension suffix on filenames that change?大型机 - 更改的文件名的扩展名后缀的名称是什么? 【发布时间】:2018-08-05 13:14:34 【问题描述】:我记得在使用 ftp get 将文件从大型机复制到 Windows 时,文件名上总会有一些数字后缀,每天都会发生变化。即 abc.4328 然后它会变成 abc.23595..etc 大型机世界中不断变化的后缀的概念/术语是什么?
【问题讨论】:
从记忆中(我已经很久没有使用大型机了,事情可能会改变)abc.4328 不是一个有效的名称。大型机确实有 GDG,格式为MY.GDG.G0123V00
,其中 0123 是世代号,00 是版本号
【参考方案1】:
抛开驻留在 Unix 文件系统中的大型机文件(z/OS 是 Unix 的一种风格,并且已经有好几年了),大型机文件没有扩展名或后缀。
大型机文件名(称为数据集名称或 DSN)采用 HLQ[.Q1[.Q2[.Qn]]] 的形式,其中 HLQ 是高级限定符,Q1...Qn 是与 HLQ 分开的后续限定符,并且彼此通过句号。整个 DSN 不得超过 44 个字符。每个限定符必须由字母、数字和 IBM 所谓的“国家”字符组成,这些字符(无论如何在美国)是 @、# 和 $。此外,限定符不能以数字字符开头。有一些例外,在我看来,最好避免。
正如 Bruce Martin 在他的评论中指出的那样,大型机具有世代数据组 (GDG) 的概念,它具有最低级别的限定符,采用操作系统生成的 GnnnnVnn 形式,其中 G 和 V 之间的四位数字是“世代number”和V后面的两位数字是“版本号”。每次创建文件的新实例时,操作系统都会增加代号。
因此,您可能正在考虑 GDG。请注意,GDG 最低级别限定符不依赖于日期或时间,它仅指示创建数据集实例的顺序。
GDG 通常不是通过绝对代号而是通过相对代号来访问的。如果 ABC.DEF 是一个 GDG 并且有四个现存的世代 ABC.DEF.G0008V00, ABC.DEF.G0009V00, ABC.DEF.G0010V00, ABC.DEF.G0011V00 那么对 ABC.DEF(0) 的引用将是简写ABC.DEF.G0011V00。对 ABC.DEF(-1) 的引用将是 ABC.DEF.G0010V00 的简写。引用相对生成 (0) 始终是对最近创建的 GDG 实例的引用。
大型机数据集也可以是 PDS(分区数据集)。分区数据集具有“成员”,并且在概念上与 PC 或 Unix 文件系统上的目录略有相似(尽管实现方式非常不同)。 PDS 可能包含许多相关成员,例如实用程序控制语句,希望将它们作为一个组进行管理。
PDS 名称遵循与普通 DSN 相同的规则,成员名称遵循与普通 DSN 限定符相同的规则,但引用成员需要在括号中指定。如果 MY.DATA 是 PDS 并且我希望访问名称为 XYZ 的成员,我将指定 MY.DATA(XYZ)。
请注意,数据集的格式不一定在其名称中指明。一个数据集是,例如包含固定 100 字节记录的 PDS 作为元数据记录在文件系统中。
【讨论】:
没错,就是GDG!【参考方案2】:上面@cschneid 的反应很好。添加到它:
-
在 z/OS Basic Skills 页面上有 IBM 关于 GDG 的文档 - https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconcepts_175.htm
有多种数据集类型 - GDG 并不是真正不同的数据集组织,它只是一种特殊的命名约定,表示相对“年龄”。有顺序数据集(“平面文件”)、分区数据集(有点像被目录包围的平面文件的集合)、VSAM 数据集(一个非常长的主题),以及其他一些不常用的深奥类型天。
GDG 是一种非常巧妙的命名(非 VSAM)数据集的方法,其版本号可以在 JCL 或使用这些相对版本号的行命令中引用。但这只是命名
琐事:在我工作过的地方,系统程序员和操作人员经常将这些 GnnnnVnn 称为“goovoo”数字,b/c 它们通常被编号为 G00nnV00.. :-)
【讨论】:
以上是关于大型机 - 更改的文件名的扩展名后缀的名称是啥?的主要内容,如果未能解决你的问题,请参考以下文章
手机上传照片显示:文件格式不对或格式与文件后缀名不付,是啥意思?啥是文件后缀名?