linux 如何在后台处理移动命令?
假设我移动了我的家目录
/home/me
Run Code Online (Sandbox Code Playgroud)
我把它移到另一个目录
/home/foo/me
Run Code Online (Sandbox Code Playgroud)
下的所有文件和目录路径如何me
更改?我知道我的Desktop
目录 me
现在/home/foo/me/Desktop
以及,Documents
/home/foo/me/Documents
但文件系统是否明确更新下的每个路径me
以反映更改?这听起来效率不高,而且可能不是这样。
我可以从哪里获得更多信息?
Ken*_*h L 21
要了解它如何移动文件夹,您可能需要了解一些 Linux 下的文件系统。每个文件和文件夹都存储为称为“ inode ”的数据结构的一部分。每个文件都有一个 inode 编号,文件夹也是如此。
要查看文件夹的 inode,请使用命令ls -ial foldername
. 第一列显示文件的 inode 编号。对于每个文件夹,有两个唯一的名称.
和..
,分别代表自己的目录和父目录。
您可以尝试做一个实验,将带有子目录和文件的目录(例如 /home/me/source)移动到另一个目录(例如 /home/me/somewhere/else)。/home/me/source 的 inode 编号及其所有内容在移动前后保持不变。唯一的区别是 的inode编号..
,原来共享/home/me的inode编号,现在变成/home/me/somewhere/else的inode编号。简单来说,Linux 更新到目录源的链接,然后就完成了。
硬盘上的内容无论如何都不会被修改,只是在移动文件夹时更新了 inode 索引。当然,如果您将文件夹移动到不同的物理位置,则情况并非如此。