我一直在搜索 Google 以及 OpenVMS 系统管理员指南和用户指南,但仍然找不到任何关于列出 OpenVMS 卷上存在的目录的信息。我看不出这在文档中是如何被认为是理所当然的,因为其他一切都是非常具体的,所以要么我看不到它,要么它无法完成。如果它不能完成,那么关于使用 VMS,我会遗漏一些非常大的图片。任何建议表示赞赏。
TIA, grobe0ba
我一直在搜索 Google 以及 OpenVMS 系统管理员指南和用户指南,但仍然找不到任何关于列出 OpenVMS 卷上存在的目录的信息。我看不出这在文档中是如何被认为是理所当然的,因为其他一切都是非常具体的,所以要么我看不到它,要么它无法完成。如果它不能完成,那么关于使用 VMS,我会遗漏一些非常大的图片。任何建议表示赞赏。
TIA, grobe0ba
通过“列出”,我假设您的意思是通过诸如 Dir 之类的命令...要查看卷上的所有目录,我会执行类似的操作,
$ dir volumeid:[000000...]*.dir
当然,您需要足够的权限才能查看卷上的所有目录。
不幸的是,我没有评论所需的声誉,所以我必须重新制定答案。
@ChrisB
一般来说,投票时的这个答案是不正确的。目录总是以 .DIR 结尾且版本为 1 的文件。将目录重命名为 *.DIR;x 且 x>1 将使目录无法遍历。然而,DIR 文件保留其目录特征并将其重命名回 ;1 将返回其正常行为。
所以可以在 DIR 命令中添加一个 ;1
$ dir volumeid:[000000...]*.dir;1
但这又是无效的,因为任何人都可以创建不是目录的 *.DIR 文件(例如 EDIT TEST.DIR),并且那里有应用程序这样做。
@海因
所以海因的第二个答案,此时确实有 0 票,是正确的答案。在没有第三方工具的情况下完全执行请求的操作是:
$ PIPE DIR /TOTAL volume:[*...] | SEARCH SYS$PIPE "ory "
此命令将仅显示有效目录
要快速浏览所有目录,您还可以查看“目录”的 /TOTAL 选项。
$ DIRE /总计 [*...]
添加 /SIZE 以获得效果(和减速)
您当然可以将过程发布到您的心中...
$ pipe dir /total data:[*...] | perl -ne "print if /^Dir/"
Directory DATA:[CDC]
Directory DATA:[CDC.ALPHA]
Directory DATA:[CDC.ALPHA.V8_3]
$ pipe dir /total data:[*...] | searc sys$pipe "ory "
Directory DATA:[CDC]
Directory DATA:[CDC.ALPHA]
Directory DATA:[CDC.ALPHA.V8_3]
$ pipe dir /total data:[*...] | perl -ne "chomp; $x=$1 if /^Di.* (\S+)/; printf qq(%-60s%-19s\n),$x,$_ if /Tot/"
DATA:[CDC] Total of 7 files.
DATA:[CDC.ALPHA] Total of 1 file.
DATA:[CDC.ALPHA.V8_3] Total of 11 files.
最后,如果您认真对待 OpenVMS 上的文件和目录,请务必在 Google 上搜索 DFU OPENVMS ...下载并享受。