我不是 *** 作系统或CS训练,但在理论上看来,似乎应该可以创建一个新的inode并从我要复制的文件的inode中复制inode指针结构,然后取消链接这些inode.有没有什么实用程序会这样做?鉴于很多思想上的unix实用程序的滥用,我完全期望它是,但找不到任何东西.所以我的这个问题.文件系统在块设备上,实际上是硬盘,以防该信息重要.我没有信心自己写这个,因为我从来没有做过任何系统级编程,所以任何指针(对C / Python代码snipppets)将是非常有帮助的.
解决方法 即使有这样的工具,只有在最后一个文件之外的文件才有效被保证具有大小是文件系统块的倍数
尺寸.
如果您控制数据如何写入临时文件,并且您知道
每个人将会有多大,您可以做以下 *** 作
>在开始多处理之前,创建最终的输出文件并增长
它到最后的大小fseek()
ing
到最后,这将创造一个
sparse file.
>开始多处理,将每个进程的FD和偏移量递送到其中
文件的特定片段.
这样,进程将协同填充单个输出文件,
消除了以后将它们聚集在一起的需要.
编辑
如果你无法预测单个文件的大小,而是消费者的
最终文件可以使用顺序(而不是随机访问)输入,你可以
Feed cat tmpfile1 .. tmpfileN给消费者,无论是在stdin上
cat tmpfile1 ... tmpfileN | consumer
或通过命名管道(使用bash的Process Substitution):
consumer <(cat tmpfile1 ... tmpfileN)总结
以上是内存溢出为你收集整理的在Linux上快速连接多个文件全部内容,希望文章能够帮你解决在Linux上快速连接多个文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)