老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Linux系统中mv、cp、rm命令的工作原理讲解!老男孩Linux云计算课程

老男孩IT教育

行业新闻

2022年5月18日 10:34

在Linux系统中,命令是我们经常能见到的及使用的,常见的目录操作命令有mv、cp、rm、mkdir等,你知道这些命令在执行过程中底层具体做了哪些工作吗?请看下文:

       在Linux系统中,命令是我们经常能见到的及使用的,常见的目录操作命令有mv、cp、rm、mkdir等,你知道这些命令在执行过程中底层具体做了哪些工作吗?请看下文:

Linux运维培训机构

       首先,我们需要了解下一个很关键的东西:inode表。

       inode表,全称为index node,表中包含文件系统所有文件列表,一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:文件类型、权限、UID、GID、链接数(指向这个文件名路径名称个数)、该文件的大小和不同的时间戳、指向磁盘上文件的数据块指针、有关文件的其他数据。

       文件引用的是inode号,人是通过文件名来引用一个文件,一个目录是目录下的文件名和文件inode号之间的映射。

       cp命令用于拷贝数据,在cp命令执行过程中:分配一个空闲的inode号,在inode表中生成新条目,在目录中创建一个目录项,将名称与inode编号关联,拷贝数据生成新的文件。

       rm命令是删除数据的工具,在rm命令执行过程中,数据链接数递减,从而释放inode号,并且inode号可以被重用,把数据块放在空闲列表中,删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将会被覆盖。

       mv命令时经常用来将数据从一个地方挪到另外一个地方的工具,而mv命令在挪动数据的时候,底层工作分为两种情况:

       1、mv命令的目标和源在相同的文件系统,可以理解为同一分区,mv命令在执行过程中用新的文件名创建对应新的目录项,删除旧目录条目对应的旧的文件名,并不影响inode表(除时间戳)或磁盘上的数据位置,也就是说没有数据被移动。

       2、如果目标和源不在一个文件系统,也就是不在一个分区,那么mv相当于cp和rm,即改变了inode表的条目,也发生了数据移动。

       为了让学员学以致用,老男孩教育不断更新Linux培训教学大纲,与一众讲师精心打造Linux云计算SRE课程体系。老男孩教育Linux云计算SRE运维课程,从零基础开始授课,适合零基础且对Linux感兴趣的学员学习。课程的主要目的就是培养出专业的Linux系统工程师,名师授课全程面授教学,边讲边练帮助学员高效掌握Linux技术。

   推荐阅读:

       Linux操作系统中,分区是什么?老男孩Linux运维培训班

       linux操作系统中的常见目录有哪些?老男孩Linux培训班

       【Linux培训】界面美观的Linux发行版本都有哪些?

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。