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
あなたのPATH
は悪いです。 Cygwinディレクトリの前にWindowsシステムディレクトリがあるか、Cygwinディレクトリがまったくない可能性があります。このメッセージは、Windowsコマンドfind
から送信されます(その名前がFIND
として大文字で報告されることはヒントです)。
Cygwin Shellを起動するときは、通常、PATH
を設定する必要があります。ログインシェルを開始することをお勧めします(私が正しく思い出せば、それがデフォルトのCygwinシステムメニューエントリの役割です)。 Cygwin PATH
には/usr/local/bin
、/usr/bin
および/bin
(少なくとも)非Cygwinディレクトリの前。
Findはインストールされていますか? 「見つけた」は何を返しますか? Windowsには組み込みのコマンドライン検索があり、Cygwinが独自の検索がMIAの場合に使用することに注意してください。
Gillesからの回答は、find
コマンドのWindowsバージョンがcygwinバージョンの前に来るため、正しいので呼び出されます。
ただし、Cygwinを先に進めると、windows find
コマンドを使用するすべてのバッチファイルが実際にcygwin find
コマンドを呼び出すことになりますが、これは目的とは異なる場合があります。
私の意見では、両方が機能する最も共生的な方法は、以下を実行することです:
find
コマンドを見つけ、名前を変更/コピーしてlfind.exe
(またはWindows PATHにない他の名前)~/.bashrc
ファイルalias find=lfind
このように、cygwinターミナルからfind
を実行すると、cygwinバージョンが使用されますが、バッチファイルはWindowsバージョンを使用します。
注:PATHにはまだcygwin binディレクトリが必要ですが、Windowsシステムディレクトリからさらに遠くにある場合もあります。
Cygwinをインストールする場合、要求しない限り、可能なパッケージがすべてインストールされるわけではありません。目的のパッケージを追加するには、スーパーユーザーの説明 here をご覧ください。
または、次の操作を実行します。
これはネイティブのwin32ポートとしてのGNU-utilsです 。実行するのにcygwinは必要なく、grep、sed、awk、find、less、cat、tacなどのシェル(sh.exe)が付属しています。
Windowsパスの問題は解決しませんが、検索の名前をgfind
(gnu-find)またはsearch
に変更して、より簡単にアクセスできるようにし、coreutils dirを道。