首先你应该好好看看问题,他并没有说要让file2的*块*
剪切到file1的后面,而且这是完全没有道理的。建议你看看ext3文件系统的基本概念(大部分的文件系统基本概念差不多)。
再说cat是用来连接文件的,就是把file2剪切到file1里啊,而且原问题就已经说了可以cat
file2>>file1。不过我承认这是文件系统驱动的事(我没有说不是啊),为什么不可以优化文件系统的cat操作?

2008/6/14 AutumnCat <[EMAIL PROTECTED]>:

>  你看回原问题
> *有没有一种办法,能把file2 "剪切"到file1中?也就是说把file2在文件系统中占用的数据块分配给file1
> *
> 他的意思是将 file2  的块"串在" file1 后面, 这显然是文件系统驱动的事, 根本不轮cat, rename ....管.
>
> 石康志 写道:
>
> 块如何组织的确是文件系统决定的,但这个操作绝不会破坏数据结构,因为实际文件和文件地址信息是分开管理的,我们根本不需要对实际文件进行操作,需要改动
> 的只是地址信息,这实现起来是完全可行的(包括link, rm,
> rename,……好多都是只改了地址信息),你说别的程序不会用到我没理解,这只是改进了cat操作,并没有新的接口,为什么没有通用型?
>
>
> 2008/6/14 AutumnCat <[EMAIL PROTECTED]>:
>
> 块如何组织是文件系统的数据结构决定的, 不一定支持这种操作(否则就破坏数据结构). 即使实现了, 也得修改文件系统驱动,
> 但别的程序根本不会用这个接口, 不具有通用性.
>
> Zu 写道:
>
> 没错
>
>  2008/6/13 石康志 <[EMAIL PROTECTED]>:
>
> 虽然块是顺序存储的,但是如果一个文件由3个块组成,并不要求这三个块要放到一起,所以如果文件A有4k,B有8k +
> 1byte,在这里并不需要移动任何一方,需要做的只是更改文件A的地址信息加上地址B,并删掉B的文件地址信息(和rm做的一样,rm也只删掉地址信
> 息,所以可以找回数据)。
>
>  2008/6/13 Zu <[EMAIL PROTECTED]>:
>
> Ok,考虑当一个块没有被占满的情况呢?看看我前面举的例子?
>
>  2008/6/13 石康志 <[EMAIL PROTECTED]>:
>
> 的确在块内是排序的,不过整个文件根本不需要移动,所有从哪儿来的问题呢?
>
>  2008/6/13 Zu <[EMAIL PROTECTED]>:
>
> 没有人说是按顺序排列的。按不按顺序排列是不一定的,说不定哪天谁开发出一个完全按顺序排列的,不考虑效率的文 件系统也不是没有可能。
>
> ext3在块内是按顺序的。建议先了解一下ext3的分块的基本概念再讨论。
>
>   2008/6/13 石康志 <[EMAIL PROTECTED]>:
>
> 完全不对!在文件系统中,文件并不是顺序排列的,也许一个1G的文件有100MB在'0, 0'->100mb地址,后面可以在'10000000,
> 10000000'->900mb,并不要求这一个G的东西全部按顺序放到一起,控制这一切的,仅仅是一个文件的地址信息(你可以把它想象成指
> 针),所以可以通过改变地址信息控制文件。
>
>  2008/6/13 Zu <[EMAIL PROTECTED]>:
>
> 可能是我没有把问题说清楚,我的原话是:
>
> *有2个文件,file1和file2,大小都是4G,如果想合并file1和file2,可以 cat
> file2>>file1来实现,这样要花几分钟时间。有没有一种办法,能把file2 "剪切"
> 到file1中?也就是说把file2在文件系统中占用的数据块分配给file1?使用的是ext3文件系统。*
>
>  mv
> 的作用是把一个文件改一个名字,该文件除了文件名以外其他信息都不变,所以mv的速度特别快。mv不能把一个文件的内容移动到另一个文件的末尾去。我觉着
> 下面shell909090说的比较有道理:
>
> *有点困难,因为根据我的理解,任何文件在磁盘中都是"块* *"的集合存储的。如果头
> 一个文件正好放满N块还好说,如果正好差一点,那么后面的数据按**照规则必须先
> 填充前面的块。这样会造成后一个文件全面的内容位移**,其读写数据量没有比直接
> 附加低多少。*
>
> 举例:
> file1的文件长度是1个字节,在块大小是4k的ext3文件系统下,这个文件要占用4k的空间,也就是一个块的空间。
> file2的文件长度是8K+1个字节,在块大小是4k的ext3文件系统下,这个文件要占用8K+4k的空间,也就是3个块的空间。
> 如果要把file2剪切到file1的末尾,要做到比"cat file2>>file1"更快,不修改内核中的文件系统能做到吗?
>
> 2008/6/13 马利 <[EMAIL PROTECTED]>:
> > 看看mv的源代码就差不多了吧,适当复用,没看出来和内核有什么关系
> >
> > --
> > 马利
> > richard.ma
>  > --
> > ubuntu-zh mailing list
> > [email protected]
> > https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
> >
> >
>
>
>
> --
> 瑞豪开源VPS - 基于Linux/Xen - 最低58元/月 - 免费试用
> http://www.RasHost.com
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
>
> --
> 瑞豪开源VPS - 基于Linux/Xen - 最低58元/月 - 免费试用
> http://www.RasHost.com
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
>
> --
> 瑞豪开源VPS - 基于Linux/Xen - 最低58元/月 - 免费试用
> http://www.RasHost.com
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
>
> --
> 瑞豪开源VPS - 基于Linux/Xen - 最低58元/月 - 免费试用
> http://www.RasHost.com
>
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>
>
> --
> ubuntu-zh mailing list
> [email protected]
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
>
>


-- 
qingshi163
-- 
ubuntu-zh mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh

回复