【问题标题】:"Unix directories are lists of 'link' structures"“Unix 目录是‘链接’结构的列表”
【发布时间】:2011-01-16 05:22:30
【问题描述】:

来自http://en.wikipedia.org/wiki/Inode

Unix 目录是“链接”列表 结构,每个结构包含一个 文件名和一个 inode 编号。

我只想获取此链接列表的长度,目录中文件的名称在我的代码中此时并不重要。

首选 Perl 解决方案,但任何解决方案都可以。

【问题讨论】:

    标签: list directory inode


    【解决方案1】:
    opendir DIR, '.';
    $num_items = @{[readdir DIR]};
    closedir DIR;
    

    中心点是readdir 在列表上下文中调用时返回所有目录条目。

    【讨论】:

    • 我正在寻找一个较低级别的解决方案,因为 readdir 将遍历目录的内容。 Wikipeida 文章让我觉得目录结构本身可能包含一些元信息,例如“这里有 'n' 个元素”。
    • @Trueblood:不,没有,至少不能以便携式方式访问。作为粗略的指导,您可以使用目录的大小,但是如果(比如说)您将一百万个文件放在一个目录中(因此它会增长到大小)然后再次删除这些文件,则不需要缩小目录.在某些文件系统中,放大后的大小会永久保留。 :-)
    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    相关资源
    最近更新 更多