使用Python学习Linux中的目录物理磁盘

1 投票
2 回答
556 浏览
提问于 2025-04-16 12:50

首先,抱歉我的英语不好。

我正在写一个Python脚本,用来比较两个不同文件夹里的文件。但是为了提高性能,我想知道:“这两个文件夹是在同一个物理硬盘上吗?”这样我就可以同时读取它们,提高效率。

我现在的想法是获取“mount”命令的输出,找到/dev/sd*的目录路径,然后用这些路径来判断硬盘。但是有时候你可以把一个已经挂载的目录再挂载到别的地方(或者类似的情况,我不是很确定),所以事情就变得复杂了。

有没有更好的方法,比如用某个库来实现?

(如果有跨平台的方法,我会更感激,但似乎很难找到这样的跨平台库。)

2 个回答

0

使用 mount 的一个更简单的方法是用 df <目录> 命令。

这个命令会显示出文件系统的信息。而且,在我的Ubuntu系统上,给 df 加上 -P 选项,可以让输出的内容更容易理解。

6

你在找Linux中的stat函数,Python也提供了这个功能(可以查看这个链接)。

你需要比较结果结构中的st_dev,如果两个文件的这个值相同,说明它们在同一个文件系统上。

使用这个函数是非常方便的,移植性很好(比使用mount或df要好)。

额外好处是,你不需要执行复杂的命令,也不用担心解析文本时出错。

撰写回答