浅谈linux系统中mv、cp、rm这三种命令的工作原理

浅谈mv、cp、rm这三种命令的工作原理

mvcprm命令是linux系统中经常用到的工具,但是如果想知道这些命令在执行过程中底层具体做了哪些工作,我们首先要了解下一个关键的东西:inode 表。

  inodeindex node)表中包含文件系统所有文件列表,一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括:文件类型,权限,UIDGID、链接数(指向这个文件名路径名称个数)、该文件的大小和不同的时间戳、指向磁盘上文件的数据块指针、有关文件的其他数据。Inode表结构如下图所示:图片1

  我们继续从下图中去了解inode表,文件引用的是 inode号,人是通过文件名来引用一个文件,一个目录是目录下的文件名和文件inode号之间的映射。

图片2

  了解完inode表结构之后,我们需要首先了解下cp和rm两个命令:

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

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

  cp命令和rm命令可以看出来在运行这两种工具时,底层数据都发生了改变,下面我们来谈谈mv命令执行时底层发生了什么:

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

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

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

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/104126

(42)
PoPoPoPo
上一篇 2018-07-29 19:52
下一篇 2018-07-29 20:10

相关推荐

  • 用户管理类命令

    1.列出当前系统上所有已经登录的用户的用户名,注意,同一个用户登录多次则只显示一次 [root@localhost tmp]# who |cut -d” ” -f1 |sort -u root test zach 2.取出最后登录到当前系统的用户的相关信息 [root@localhost tmp]# grep $(w|tail -n 1 |awk -F ” …

    Linux笔记 2018-05-27
  • Linux文本处理三剑客之awk

    本文主要介绍:awk的基本用法、变量、格式化输出、操作符、条件判断、循环、数组、函数、调用系统命令及awk脚本

    2018-05-28
  • Linux-vim

    vim简介 vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个Vim编辑器的图形版本   打开文件 # vim [OPTION]&#8…

    2018-04-08
  • LVM逻辑卷-创建、扩容、缩减、迁移、快照

    基本概念:pv  //物理卷vg  //卷组lv  //逻辑卷本次实验使用CentOS6版本,并在vmware虚拟机上操作 实验一 创建逻辑卷第1步:准备三个磁盘sdb、sdc、sdd,创建物理卷[root@CentOs6 ~]#fdisk /dev/sdb  #使用fdisk命令对磁盘sdb分区Device Boot      Start        E…

    Linux笔记 2018-04-26
  • 马哥教育第三周4.15

    vimvim +10 直接跳到第10行i 输入信息I跳到行首A跳到行尾o当前下面重新开启一行O当前上面重新开启一行w f2 另存为w!强行覆盖r 后面跟路径 可以读取别的文件加进来:!命令 可以直接出执行结果:r!+路径 文件 直接写入文档中:s 搜索 :%s/xyz/&er/g  扩展模式::q 退出:q! 强制退出,丢弃做出的修改:wq 保存退…

    Linux笔记 2018-04-15
  • 第十次笔记

    自动化运维之自动化安装系统

    2018-05-24