虽然我认为使用“locate”搜索磁盘(C: 和外部)上的文件会非常有用,但我担心使用locate和/或(sudo)updatedb可能会在Windows系统(C:)上导致一些严重问题。例如,前几天,我对一堆文件(包括一些系统文件或种类)使用了“stat”,WSL停止工作并且无法终止,我需要重新启动机器。幸运的是,它似乎没有在我的计算机上造成任何问题,我担心使用locate或updatedb扫描所有文件可能会导致WSL崩溃,或者最坏的情况下会导致Windows系统崩溃。
那么,在 Windows WSL linux(ubuntu 等)上使用locate/updatedb安全吗?
答案1
我不会推荐它,仅仅出于性能原因,特别是如果你正在运行 WSL2。WSL1 使用 drvfs 访问 Windows 下的文件,这仍然比“本机”Linux 文件系统慢,但 WSL2 使用 9P,如果你访问许多小文件,它可能比 WSL1 慢 10 倍。
有一些替代方案是原生 Windows 的。我可能只需要处理两个单独的命令/数据库来搜索 - 一个用于 WSL/Linux,另一个用于 Windows 驱动器/文件。
答案2
对于 Windows,使用 voidtools'一切。我使用 WSL 的软件包还没有获得成功的结果locate
。
或者将 /mnt 添加到 /etc/updatedb.conf 中的 PRUNEPATHS,以避免索引 Windows 文件,这样 updatedb 就可以完成。
答案3
使用资源管理器 - 参见微软自己的互操作性页面。您可以使用搜索栏,根据我的经验,它非常有效。
转到你的终端并输入explorer.exe .
这将在您启动它的目录中打开 Windows 资源管理器窗口。如果您需要在 Windows 和 Linux(我的情况是 Ubuntu)之间移动文件,这将非常方便