V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SolidZORO
V2EX  ›  问与答

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

  •  
  •   SolidZORO · 2011-12-20 00:00:49 +08:00 · 4300 次点击
    这是一个创建于 4730 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    1970-01-01 08:00:00 +08:00
    raptium
        1
    raptium  
       2011-12-20 00:07:57 +08:00 via iPad
    应该记录的是文件名吧
    xupefei
        2
    xupefei  
       2011-12-20 00:10:59 +08:00
    > 在按下ctrl+c的时候,发出指令占用的内存都一样么?
    记录的是文件的路径。路径有多长就占多少内存。

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

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

    继续求,还是不解。这东西也不知道怎么开头向大婶问。
    raptium
        5
    raptium  
       2011-12-20 00:25:30 +08:00 via iPad
    @SolidZORO 可以做试验的
    复制后 修改一下再贴 看看结果是啥
    raptium
        6
    raptium  
       2011-12-20 00:27:04 +08:00 via iPad
    还可以做个实验 复制之后做个磁盘碎片整理再贴
    SolidZORO
        7
    SolidZORO  
    OP
       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
        8
    haohaolee  
       2011-12-20 01:07:17 +08:00
    ctrl+c ctrl+v只和剪贴板打交道(Windows),这是应用层的事情,不会去记录磁盘信息的
    Ricepig
        9
    Ricepig  
       2011-12-20 02:16:44 +08:00
    你可以复制一个文件,然后打开记事本,粘贴,看看出来的是什么。

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

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

    哦,另外有个有些OT的现象,我觉得也很有趣。在 terminal 中 cd 到某个文件夹下,然后把这个文件夹丢进垃圾桶,然后在 terminal 里 cd .. 就会发现去垃圾桶了…… 所以 shell 记录当前工作的文件夹也不是就记一个路径这么简单的。
    freefcw
        15
    freefcw  
       2011-12-20 22:39:06 +08:00
    额……没有谁会傻到真的去复制文件到内存神马的。。。再说文件在硬盘上存储相当于链表而已,改一下指针就好了= =
    当然跨磁盘,跨分区就肯定要读写磁盘了,这样内存肯定要消耗的,但是也不会消耗很大的内存的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:37 · PVG 07:37 · LAX 15:37 · JFK 18:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.