![如果我将文件从一个目录移动到另一个目录,OneFS (FreeBSD) 文件系统中到底会发生什么?](https://linux22.com/image/218722/%E5%A6%82%E6%9E%9C%E6%88%91%E5%B0%86%E6%96%87%E4%BB%B6%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%8COneFS%20(FreeBSD)%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%88%B0%E5%BA%95%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%EF%BC%9F.png)
如果我mv
在 OneFS(基于 Isilon、FreeBSD)中从命令行执行命令,后台和磁盘上究竟会发生什么?
数据是否会从磁盘上的扇区物理移动到其他扇区,或者只是更改文件系统中这些文件的链接?物理磁盘上的数据是否保留在原来的位置?这里的 inode 是如何参与的?
我这么问是因为我有一个巨大的目录,其中包含超过 50 TB 的数据,并且它在网络上共享。我需要mv
将此目录放在同一文件系统中的另一个目录下。我想停止分享mv
然后再次分享。我不确定这是否像我想象的那么简单。
有任何输入吗?
答案1
不,没有整个文件的副本。每个文件都由一个结构来描述(在大多数 UNIX 文件系统上,它称为索引节点)。该结构包含有关文件的信息(长度、日期、在哪里可以找到其块、权限......),名称除外。
文件名位于目录中,该目录在文件名和索引节点之间进行映射。如果移动文件,您只是抑制目录上的映射并在不同目录上创建其他文件。
某些文件系统可能存在一些差异(在 FAT 文件系统上,文件信息位于目录中,但系统会将所有信息(几个字节)从一个目录传输到另一个目录)。但你有整个计划。
在典型的 UNIX 文件系统上,文件结构与目录分离,这允许您对单个文件使用多个名称(最终来自不同的目录)(使用命令ln
)。