Windows中cmder.exe上的Unix查找命令


10

我为Windows 安装了cmder shell模拟器。

工作正常,但我不能使用Unix的find命令。显然当我键入:

'find .'

在终端中,它尝试使用Windows的FIND并输出以下错误:

FIND: Parameter format not correct

我真的很想使用find,有关如何使其工作的任何提示?


1
您需要使环境变量中find之前C:\Windows\System32(Windows查找的位置)的目录出现在其中PATH。通常认为在全球范围内这样做不是一个好主意,因为它会混淆期望标准Windows环境的其他程序。相反,您应该查看是否可以在Cmder中设置启动脚本,并使该脚本执行类似操作set PATH=C:\path\to\folder\with\unix\find;%PATH%
Bob

我不知道cmder,但是在Linux / Unix which -a find中将显示所有可以使用find命令执行的程序。识别Unix find。然后使用其完整路径,或者重新排列PATH目录的顺序,或者设置别名(如果cmder支持);您也可以将Windows重命名find.exewfind.exe。如果模拟bash,则可以使用内置的type -a find
AFH



@AFH which -a find返回/c/WINDOWS/system32/find /usr/bin/find。但是,不幸的是,/usr/bin/find收益率很高The system cannot find the path specified.。似乎这里需要实际的Windows样式路径。运行type将启动Windows type,并且它似乎cmder不提供类似Unix的版本。
simlev

Answers:


11

最简单的解决方案是findcmder安装文件夹中为可执行文件创建别名:

λ which find
/c/WINDOWS/system32/find
λ find --help
FIND: FIND: Parameter format not correct
λ alias find=C:\Files\Programs\cmder\vendor\git-for-windows\usr\bin\find.exe $*
λ find --help
Usage: /usr/bin/find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

我想建议您也尝试一下Cygwin,其中除其他外,它find可以直接使用。这就是我用来确定-提供的位置的cmder方法find.exe

荣誉对@Bob@AFH的深刻见解,并@琉永福的建议又死了,简单的解决方案:

将* nix重命名find为另一个名称,例如fnd.exe

这实际上可能是在创建别名preferrable,因为cmder除非别名不能在Windows 10的工作Use legacy console中选择cmd属性(请参阅如何做到这一点)。


谢谢你的建议。似乎是最好的方法。我通常在Windows上使用cygwin,但由于工作原因,我现在被迫改行。我将尽快尝试!
Heisenbug

@Heisenbug cmder的明显优势是可移植,并且不需要特权用户执行安装。
simlev

您也可以简单地将* nix重命名find为其他名称,例如fnd.exe
phuclv

我重命名了unix版本,以避免修改Windows本机内容。但是,谢谢,我真正真正缺少的是那些命令存储所在的文件夹,您的回答对我有所帮助。
Heisenbug

gnu在非gnu系统上不是通常被称为gfind吗?

4

Cmder\vendor\git-for-windows\usr\bin通过添加到PATH中Cmder\vendor\init.bat。不幸的是,它被添加在PATH 的末尾,因此首先找到Windows的find.exe。

幸运的是,它很容易修复。只需在下面添加以下行Cmder\config\user-profile.cmd

set "PATH=%GIT_INSTALL_ROOT%\usr\bin;%PATH%"


0

我已经在Windows中安装了smartgit

然后我将C:\ Program Files(x86)\ SmartGit \ git \ bin(我的smartgit文件夹)添加到路径环境中

按win + r输入bash。在bash shell中,您可以使用find命令。在Cmder中,您也可以输入bash以使用它

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.