私の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をインストールするときに何かをインストールする必要がありますか、それとも何か間違っていますか?
答え1
あなたのPATH
状況は深刻です。 Cygwinディレクトリの前にWindowsシステムディレクトリがあるか、Cygwinディレクトリがまったくない可能性があります。このメッセージはWindowsコマンドからのものですfind
(FIND
ヒントとして名前を大文字で報告します)。
Cygwinシェルを起動するときは、通常これを設定する必要がありますPATH
。ログインシェルを起動することをお勧めします(私の記憶が正しい場合は、これがデフォルトのCygwinシステムメニュー項目の機能です)。 Cygwinには、PATH
非Cygwinディレクトリの前に/usr/local/bin
(少なくとも)含める必要があります。/usr/bin
/bin
答え2
インストールを見つけましたか? 「見つかったもの」は何を返しますか? Windowsにはコマンドライン検索が組み込まれており、Cygwinの独自の検索がmiaの場合は最終的にそれを使用します。
答え3
find
Windowsバージョンのコマンドはcygwinバージョンよりも前に表示されるため、コマンドが呼び出されるという点でGillesの答えは正しいです。
しかし、Cygwinを前に置くことは、find
Windowsコマンドを使用するすべてのバッチファイルが実際にcygwinfind
コマンドを呼び出すことを意味し、おそらく望むものではありません。
私の考えでは、2つが最も共生する方法は、次のことです。
- cygwin
find
コマンドを見つけて名前を変更またはコピーしますlfind.exe
(またはWindowsパスにない他の名前)。 - ファイルに
~/.bashrc
次の行を追加します。alias find=lfind
これにより、find
cygwin端末で実行するときにcygwinバージョンを使用しますが、バッチファイルはWindowsバージョンを使用します。
注:まだPATHにcygwin binディレクトリが必要ですが、Windowsシステムディレクトリの背面に配置できるようになりました。
答え4
以下は、デフォルトのwin32ポートであるGNU-utilsです。。 grep、sed、awk、find、less、cat、tacなどを含むシェル(sh.exe)を実行して提供するためにcygwinは必要ありません。
Windowsパスの問題はまだ存在しますが、findの名前をgfind
(gnu-find)に変更したり、アクセスしやすくしたり、search
PATHにcoreutilsディレクトリを追加したりできます。