我在Linux中知道,如果我们想将文件夹从f_old重命名为f_old,我们可以运行: mv f_old f_new 但是这个命令实际上使我感到困惑。系统是否在f_old中复制所有内容,将其粘贴到新的...

问题描述 投票:0回答:3
f_new

,我们可以运行:

mv f_old f_new
但是这个命令实际上使我感到困惑。系统是否将所有内容复制在

f_old
中,将其粘贴到新文件夹中,然后删除
f_new

?还是只是将

f_old
重命名为
f_old
如果源和目的地在同一分区上,请不要复制或移动。 
系统只需更新指向相同inodes的目录条目即可反映新名称。这是一个快速操作,因为没有物理移动数据。
如果源和目的地在不同的分区上,则执行文件夹及其内容的物理副本,然后删除原始文件夹。

关于Inode和Directory条目的工作方式
linux command-line filesystems
3个回答
14
投票

只要目标位置与源位于同一分区(文件系统)上,则不会移动甚至触摸数据。目录条目中只有名称才会更改。

如果目标是在单独的分区上,则数据将首先复制到目标,然后从源中删除。

这本手册涵盖了该手册,该手册解释了如何获得: f_new

this也可以在线提供:

10
投票

MV可以将任何类型的文件从一个文件系统移动到另一个文件系统。之前 Fileutils版本4.0,MV只能在之间移动常规文件 文件系统。例如,现在MV可以移动整个目录 层次结构,包括一个从一个分区到的特殊设备文件 其他。它首先使用CP -A使用的一些相同代码 复制请求的目录和文件,然后(假设复制 成功)它消除了原件。如果副本失败,则零件 被复制到目的地分区已被删除。如果你是 将三个目录从一个分区复制到另一个分区和副本 第一个目录成功了,但第二个目录没有,第一个目录 将留在目的地分区,第二和第三 将留在原始分区。


5
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.