拷贝一个文件,一个500G一个5KB,在按下ctrl+c的时候,发出指令占用的内存都一样么?是不是都是在记录文件所在的硬盘地址?开始地址~结束地址?当没有按ctrl+v的时候,其内存占用量可以忽略不计?求原理。

2011-12-20 00:00:49 +08:00
 SolidZORO
4298 次点击
所在节点    问与答
15 条回复
raptium
2011-12-20 00:07:57 +08:00
应该记录的是文件名吧
xupefei
2011-12-20 00:10:59 +08:00
> 在按下ctrl+c的时候,发出指令占用的内存都一样么?
记录的是文件的路径。路径有多长就占多少内存。

> 当没有按ctrl+v的时候,其内存占用量可以忽略不计?
是的。
shao
2011-12-20 00:12:00 +08:00
我读书时候,老师教的是fdt 和fat表。
现在的系统我已经不知晓了,不敢乱说,看高手解答,顺便学习。
SolidZORO
2011-12-20 00:12:28 +08:00
@raptium 难道是记住路径,比如 /user/xx.txt 什么的? 难道真的不是在记 硬盘中的物理位置?

不过这样一想,貌似也行得通,如果只是记住物理位置,那么稍有改变 就会paste错了。

继续求,还是不解。这东西也不知道怎么开头向大婶问。
raptium
2011-12-20 00:25:30 +08:00
@SolidZORO 可以做试验的
复制后 修改一下再贴 看看结果是啥
raptium
2011-12-20 00:27:04 +08:00
还可以做个实验 复制之后做个磁盘碎片整理再贴
SolidZORO
2011-12-20 00:40:23 +08:00
@raptium 这个有经验,一般拷贝,然后修名字,粘贴会说找不到文件。

至于磁盘整理。 我觉得有点麻烦。。。就不测试了。

不过,我做了一个test。

复制D盘的文件A.jpg到桌面,ctrl+c D盘的A.jpg 然后到D盘删掉A.jpg,然后再把桌面的拖到D盘,然后在F盘ctrl+v。

文件过去了。。。


看来 @xupefei 说记录路径,有点道理。
haohaolee
2011-12-20 01:07:17 +08:00
ctrl+c ctrl+v只和剪贴板打交道(Windows),这是应用层的事情,不会去记录磁盘信息的
Ricepig
2011-12-20 02:16:44 +08:00
你可以复制一个文件,然后打开记事本,粘贴,看看出来的是什么。

我想如果记录的是二进制信息,记事本没有这么智能,能够找到二进制对应的路径吧?
Banana_Co
2011-12-20 08:17:45 +08:00
avichen
2011-12-20 15:48:31 +08:00
@Ricepig 你复制文件,然后在记事本里面粘贴,应该是啥都不会出来。这个是剪贴板来控制的。
9hills
2011-12-20 20:10:23 +08:00
这个和具体操作系统的“剪贴板”实现有关,但没有哪个系统会把整个文件放到剪贴板里。

一般最直接的实现方式就是记录路径,(在Linux下也和inode无关)
heidour
2011-12-20 22:07:36 +08:00
关于是不是记录路径,至少Mac OS X不是的。
因为复制文件后,把改文件拉到废纸篓或移动。任然可以粘贴。
所以,我猜是记录的更深的东西吧。
raptium
2011-12-20 22:17:48 +08:00
Windows 看似是就简单记录了路径
Mac OS X 就有些神奇了。不过记录 inode 看似也是不靠谱的,因为移动文件的时候 inode 也会变啊。

哦,另外有个有些OT的现象,我觉得也很有趣。在 terminal 中 cd 到某个文件夹下,然后把这个文件夹丢进垃圾桶,然后在 terminal 里 cd .. 就会发现去垃圾桶了…… 所以 shell 记录当前工作的文件夹也不是就记一个路径这么简单的。
freefcw
2011-12-20 22:39:06 +08:00
额……没有谁会傻到真的去复制文件到内存神马的。。。再说文件在硬盘上存储相当于链表而已,改一下指针就好了= =
当然跨磁盘,跨分区就肯定要读写磁盘了,这样内存肯定要消耗的,但是也不会消耗很大的内存的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/23870

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX