cygwinでfindコマンドが機能しないようです


10

cygwinでfindコマンドを実行しようとすると、エラーが発生し続ける

「検索:パラメータの形式が正しくありません」

ただし、Linuxでは同じコマンドが実行されます。どうしたの?

回答:


13

cygwinではなく、Windowsのfindコマンドを使用しています。

これは「which find」と入力すると明らかになります

これを修正するには、パスを編集し(システムのプロパティ->詳細->環境変数->システム変数->パス)、cygwinのエントリをパスの先頭に移動します。(これを行う簡単な方法は、パス全体をコピーし、メモ帳に貼り付けて、そこで編集し、貼り付け直すことです)。

コメントで指摘されているように、bash起動スクリプトを編集してパスを変更する方法もあります。私はこれがcygwinsバージョンを持つことが最初に問題を引き起こすケースを見つけたので、これが好ましい解決策であるとさえ言います。


5
これは理想的な修正ではないかもしれません。別の方法として、bashスタートアップファイルを編集して、Cygwinパスをシステムパスの前に追加するのではなく、システムパスに追加します。主な違いは、標準のWindows CMDシェルまたはエクスプローラーシェルでコマンドを実行するときに、最初にCygwinバージョンを検出するかどうかです。
quack quixote、2010年

cygwinは、グローバルパスに独自のパスを追加しています。そのため、かなり奇妙なOPがそのエラーを受け取ります。
akira

いい点いちゃいちゃ!
dggoldst 2010年

2

Windowsのコマンドシェルで実行するときに正しい「検索」を実行できなかったため、PATHの微調整で解決できませんでした。しかし、これはうまくいきました:

bash
/usr/bin/find . -iname blahblah*
exit

明示的なパスは適切な「検索」を起動し、何らかの理由でbashで実行されている場合にのみ機能します。


これは私にとって最も効果的でした。私は、すでにbashがインストールされているさまざまなマシンで実行できるスクリプトを作成していました。\ Windows \ System32の前にbashパスを持つ人もいましたが、後にbashパスを持つ人もいました。また、Windowsコマンドの「where find」では、すべての「find」がパス順に表示されます。
疑似
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.