我可以通过Git Bash获取在Windows上运行的定位文件吗?

Tom*_*ica 7 windows-7 git-bash

Git Bash似乎对各种Linux命令都有很好的支持。它甚至支持定位,尽管它从未找到任何东西:

mypc@mypc MINGW64 ~
$ locate --regex .*?\/[^\/]+\.docx
Run Code Online (Sandbox Code Playgroud)

我尝试更新locate数据库,但那里的支持尚未完成:

mypc@mypc MINGW64 ~
$ updatedb
/usr/bin/updatedb: line 323: /usr/var/locatedb.n: No such file or directory
Failed to generate /usr/var/locatedb.n
Run Code Online (Sandbox Code Playgroud)

我可以通过编辑一些脚本来解决此问题吗?是什么导致此问题?

小智 6

从git bash运行:

mkdir /c/Program\ Files/Git/usr/var; updatedb --localpaths='/c/'
Run Code Online (Sandbox Code Playgroud)

您也可以在〜/ .bash_profile中添加以下别名:

alias updatedb="updatedb --localpaths='/c/'"
Run Code Online (Sandbox Code Playgroud)

我还没有尝试过别名,但我不知道为什么会起作用。

只要确保

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

或在添加别名以使其加载后打开新的外壳。

  • 请注意,您必须在安装 git 的位置创建“var”子目录。如果您有多个带有 `--localpath='/c/ /d/'` 的驱动器,还可以添加多个目录 (2认同)

小智 5

谢谢你的提示!只是想添加到@danielpflood 的答案中,我需要以管理员身份运行“Git Bash” ,才能创建所需的 /var/ 目录。这是在 Windows 10 上。

[想作为评论添加,但我没有足够的声誉。]


Mic*_*ael 2

我发现我需要创建一个目录C:\Program Files\Git\usr\var并授予我的用户对其的完全访问权限。

这解决了权限问题,但为了让它索引正确的文件,我还必须调用updatedb updatedb --localpaths='/c/'(我想这可以放在配置文件中的某个地方)