Windowsのcmder.exeのunix findコマンド


10

私がインストールされcmder Windows用シェルエミュレータを。

正常に動作しますが、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 2017年



@AFH which -a findはを返します/c/WINDOWS/system32/find /usr/bin/find。ただし、残念ながら、実行/usr/bin/findするとyieldが発生しThe system cannot find the path specified.ます。ここには実際のWindowsスタイルのパスが必要なようです。実行typeするとウィンドウが起動しますがtypecmderUNIXライクなバージョンを提供していないようです。
simlev 2017年

回答:


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彼らの洞察に満ちたコメント、およびへLUUビンフック@別のデッドシンプルなソリューションを提案して:

* nix findを次のような別の名前に変更しますfnd.exe

プロパティでが選択されていcmderない限り、Windows 10ではエイリアスが機能しないため(これ行う方法を参照)、エイリアスを作成するよりも実際にこれが優先Use legacy consoleされる場合があります。cmd


提案をありがとう。行くための最良の方法のようです。私は通常、ウィンドウ上でcygwinを使用しますが、作業上の理由から、今は強制的に強制しています。私はこれをできるだけ早く試します!
ハイゼンバグ2017年

@Heisenbugにcmderは、移植性があり、特権ユーザーがインストールを実行する必要がないという明らかな利点があります。
simlev 2017年

* nix findの名前を次のような別の名前に変更することもできますfnd.exe
phuclv

Windowsネイティブのものを変更しないように、UNIXバージョンの名前を変更しました。しかし、私が本当に欠けていたのは、それらのコマンドが格納されているフォルダとあなたの答えが私を助けてくれたことです。
ハイゼンバグ2017年

gnu以外のシステムでは、gnu findは通常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(my smartgit folder)をパス環境に追加します

win + rを押してbashに入ります。bashシェルでは、findコマンドを使用できます。Cmderでは、bashと入力して使用することもできます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.