首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux的mv在内部是如何工作的?

问Linux的mv在内部是如何工作的?
EN

Stack Overflow用户
提问于 2015-03-11 21:47:42
回答 3查看 8.5K关注 0票数 13

我知道在Linux中,如果我们想将文件夹从f_old重命名为f_new,我们可以运行:

代码语言:javascript
复制
mv f_old f_new

但这个命令让我很困惑。系统是否复制f_old中的所有内容,将其粘贴到新文件夹f_new并最终删除f_old?还是将f_old重命名为f_new?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-11 21:54:33

如果源和目标位于同一个分区上,则不会复制或移动任何内容。各种inode组件都会被操纵,仅此而已。如果源和目标是不同的,那么您将看到一个物理副本和删除。

编辑-

注意,被操作的是目录条目。这和inode不一样。

票数 13
EN

Stack Overflow用户

发布于 2015-03-11 21:51:12

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

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

票数 10
EN

Stack Overflow用户

发布于 2015-03-11 21:54:14

这在完整的手册中有介绍,man mv解释了如何获得:

代码语言:javascript
复制
   The  full  documentation  for mv is maintained as a Texinfo manual.  If
   the info and mv programs are properly installed at your site, the  comâ
   mand

          info coreutils 'mv invocation'

这也可以在网上找到:https://www.gnu.org/s/coreutils/mv

mv可以将任何类型的文件从一个文件系统移动到另一个文件系统。在文件功能4.0版本之前,mv只能在文件系统之间移动常规文件。例如,现在mv可以将包括特殊设备文件在内的整个目录层次结构从一个分区移动到另一个分区。它首先使用cp -a使用的相同代码复制请求的目录和文件,然后(假设复制成功)删除原始目录和文件。如果复制失败,则删除复制到目标分区的部分。如果要将三个目录从一个分区复制到另一个分区,而第一个目录的副本成功,但第二个目录没有成功,则第一个目录将留在目标分区上,第二个和第三个目录将留在原始分区上。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28998036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档