在Linux上快速连接多个文件
我使用
Python多处理来生成每个进程的临时输出文件.它们可以是几个GB的大小,我做了几十个.这些临时文件需要相互结合以形成所需的输出,这是证明是瓶颈的步骤(和并行杀手).是否有一个Linux工具,将通过修改文件系统元数据而不是实际复制内容来创建并行文件?只要它适用于我可以接受的任何Linux系统.但是文件系统的具体解决方案不会有太大的帮助.
我不是操作系统或CS训练,但在理论上看来,似乎应该可以创建一个新的inode并从我要复制的文件的inode中复制inode指针结构,然后取消链接这些inode.有没有什么实用程序会这样做?鉴于很多思想上的unix实用程序的滥用,我完全期望它是,但找不到任何东西.所以我的这个问题.文件系统在块设备上,实际上是硬盘,以防该信息重要.我没有信心自己写这个,因为我从来没有做过任何系统级编程,所以任何指针(对C / Python代码snipppets)将是非常有帮助的. 解决方法
即使有这样的工具,只有在最后一个文件之外的文件才有效
被保证具有大小是文件系统块的倍数 尺寸. 如果您控制数据如何写入临时文件,并且您知道 >在开始多处理之前,创建最终的输出文件并增长 这样,进程将协同填充单个输出文件, 编辑 如果你无法预测单个文件的大小,而是消费者的 cat tmpfile1 ... tmpfileN | consumer 或通过命名管道(使用bash的Process Substitution): consumer <(cat tmpfile1 ... tmpfileN) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |