Linux 仅查找/搜索根分区?

Linux 仅查找/搜索根分区?

说我需要做:

查找/-name 某个文件.txt

假设根分区/安装在 上/dev/sda5;但是,假设我还有 250GB 分区(/dev/sda6/dev/sda7)安装在/media- 和我目前记不住的另一个位置。假设,我知道我要查找的文件位于 上/dev/sda5

显然,上述命令还将进入/media代表大分区的其他目录,浪费时间在错误的地方寻找文件。

有没有办法指示 find (或其他命令)进行搜索仅有的 //dev/sda5并且如果目录位于不同的分区上,则不要下降到目录?

答案1

使用-xdev参数查找

-xdev 不要下降到其他文件系统上的目录。

答案2

根据您的find实现,有三种不同的选项:-xdev-mount和/或-x。 它们中的每一个可能表现得略有不同,也取决于实现。

POSIX 标准定义首要的-xdev”:

这将导致寻找不要继续下降经过具有不同设备 ID 的目录

这是在 GNU 中实现的find(即查找工具文档)。GNU
find允许您使用-mountas ”的替代名称-xdev,为了与其他版本的 find 兼容。

在 BSD 系统和 macOS 上,选项是-x,它不是主选项。它们被称为-xdev已弃用“。但是,你可以改用-mount。[手册页FreeBSD苹果系统]

附加信息

顺便说一下,问题跟踪器上有一些未解决的问题:
https://www.austingroupbugs.net/view.php?id=1133(POSIX)
https://savannah.gnu.org/bugs/?54745(GNU findutils)

你可能会发现 Unix SE 上的这个问题很有趣:
https://unix.stackexchange.com/questions/479886/what-is-the-history-behind-the-name-of-the-xdev-option-in-find

除此以外的工具find

如果你使用ripgreprg)类似rg --files,您可以使用--one-file-system选项,其功能与寻找-xdev选择。

相关内容