后端面试之Linux-cp和mv命令的区别

本文详细探讨了Linux中cp和mv命令在处理文件时的底层原理和区别,涉及inode、open()、rename()系统调用。cp命令复制文件数据但不复制元数据,而mv命令通过rename()调用改变文件元数据。rm命令调用unlink()系统调用,只有当文件未被占用时才会真正删除。
摘要由CSDN通过智能技术生成

首发于微信公众号:【码农在新加坡】,欢迎关注。

个人博客网站:后端面试之Linux-cp和mv命令的区别

背景

如果你突然被面试官问:cp和mv这两个linux的命令有什么区别?
你会不会一脸懵逼,cp不就是复制,mv不就是移动吗,还能有什么区别?
如果你也是这么想,那么这篇文章适合你。

inode

了解文件操作命令例如cpmvrm的底层原理时,需要先了解 linux 中文件系统的基本原理。

在linux系统中,文件系统对文件的存储和访问是通过一种被称为inode即i节点的机制来实现的。

为什么需要inode呢?
文件数据存储在硬盘上,硬盘的最小存储单位叫做"扇区"(512Bytes)。OS读取硬盘的时候,为了提高效率会一次性读取一个"块"(8*扇区=4K)。
所以一个大文件的数据内容在磁盘上可能不是连续空间的,就需要inode来把各个Block串联起来。

每个文件都对应一个 i 节点,i 节点存储了除文件名文件内容之外的所有信息。

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

在这里插入图片描述

了解inode的基本信息之后,我们再看看cp, mv有什么区别。

cp

目标文件不存在时

dest.txt不存在时,执行cp src.txt dest.txt
可以发现dest.txtsrc.

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值