我知道在Linux中,如果我们想将文件夹从f_old重命名为f_new,我们可以运行:
mv f_old f_new但这个命令让我很困惑。系统是否复制f_old中的所有内容,将其粘贴到新文件夹f_new并最终删除f_old?还是将f_old重命名为f_new?
发布于 2015-03-11 21:54:33
如果源和目标位于同一个分区上,则不会复制或移动任何内容。各种inode组件都会被操纵,仅此而已。如果源和目标是不同的,那么您将看到一个物理副本和删除。
编辑-
注意,被操作的是目录条目。这和inode不一样。
发布于 2015-03-11 21:51:12
只要目标位置与源位于同一个分区(文件系统)上,就不会移动甚至触摸任何数据。只更改目录条目中的名称。
如果目标位于单独的分区上,数据将首先被复制到目标上,然后从源中删除。
发布于 2015-03-11 21:54:14
这在完整的手册中有介绍,man mv解释了如何获得:
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使用的相同代码复制请求的目录和文件,然后(假设复制成功)删除原始目录和文件。如果复制失败,则删除复制到目标分区的部分。如果要将三个目录从一个分区复制到另一个分区,而第一个目录的副本成功,但第二个目录没有成功,则第一个目录将留在目标分区上,第二个和第三个目录将留在原始分区上。
https://stackoverflow.com/questions/28998036
复制相似问题