web-dev-qa-db-ja.com

パラメータの形式が正しくないcygwinのコマンドを検索

Windowsマシンでcygwinを使用しています。検索を実行しようとしていますが、パラメーターの形式が正しくありません。何故ですか?

$ ls
bootstrap.jar
catalina-tasks.xml
catalina.bat
catalina.sh
commons-daemon-native.tar.gz
commons-daemon.jar
cpappend.bat
digest.bat
digest.sh
setclasspath.bat
setclasspath.sh
shutdown.bat
shutdown.sh
startup.bat
startup.sh
Tomcat-juli.jar
Tomcat-native.tar.gz
tool-wrapper.bat
tool-wrapper.sh
version.bat
version.sh

$ find . -name "version.sh"
FIND: Parameter format not correct
  • Cygwinのインストール中に何かをインストールする必要がありますか、それとも何か問題がありますか?
14
user14039

あなたのPATHは悪いです。 Cygwinディレクトリの前にWindowsシステムディレクトリがあるか、Cygwinディレクトリがまったくない可能性があります。このメッセージは、Windowsコマンドfindから送信されます(その名前がFINDとして大文字で報告されることはヒントです)。

Cygwin Shellを起動するときは、通常、PATHを設定する必要があります。ログインシェルを開始することをお勧めします(私が正しく思い出せば、それがデフォルトのCygwinシステムメニューエントリの役割です)。 Cygwin PATHには/usr/local/bin/usr/binおよび/bin(少なくとも)非Cygwinディレクトリの前。

Findはインストールされていますか? 「見つけた」は何を返しますか? Windowsには組み込みのコマンドライン検索があり、Cygwinが独自の検索がMIAの場合に使用することに注意してください。

1
James McLeod

Gillesからの回答は、findコマンドのWindowsバージョンがcygwinバージョンの前に来るため、正しいので呼び出されます。

ただし、Cygwinを先に進めると、windows findコマンドを使用するすべてのバッチファイルが実際にcygwin findコマンドを呼び出すことになりますが、これは目的とは異なる場合があります。

私の意見では、両方が機能する最も共生的な方法は、以下を実行することです:

  1. Cygwin findコマンドを見つけ、名前を変更/コピーしてlfind.exe(またはWindows PATHにない他の名前)
  2. あなたの~/.bashrcファイルalias find=lfind

このように、cygwinターミナルからfindを実行すると、cygwinバージョンが使用されますが、バッチファイルはWindowsバージョンを使用します。

注:PATHにはまだcygwin binディレクトリが必要ですが、Windowsシステムディレクトリからさらに遠くにある場合もあります。

1
Mitch Kent

Cygwinをインストールする場合、要求しない限り、可能なパッケージがすべてインストールされるわけではありません。目的のパッケージを追加するには、スーパーユーザーの説明 here をご覧ください。

または、次の操作を実行します。

  1. セットアップを開始し、ミラーを選択して、パッケージ画面に移動します
  2. 上部のラジオボタンリストから[保持]を選択します
  3. 関連するグループの下で目的のパッケージを選択します
  4. 「続行」を選択します
0
Eugene S

これはネイティブのwin32ポートとしてのGNU-utilsです 。実行するのにcygwinは必要なく、grep、sed、awk、find、less、cat、tacなどのシェル(sh.exe)が付属しています。

Windowsパスの問題は解決しませんが、検索の名前をgfind(gnu-find)またはsearchに変更して、より簡単にアクセスできるようにし、coreutils dirを道。

0
user unknown