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のインストール中に何かをインストールする必要がありますか、それとも何か問題がありますか?
回答
あなたのPATH
は不良です。 Cygwinディレクトリの前にWindowsシステムディレクトリがあるか、Cygwinディレクトリがまったくない可能性があります。このメッセージは、Windowsコマンドfind
から送信されます(名前をFIND
は大文字です。
Cygwinシェルを起動するときは、通常、PATH
を設定する必要があります。お勧めします。ログインシェルを開始すること(私が正しく思い出せば、それはデフォルトのCygwinシステムメニューエントリが行うことです)。 Cygwin PATH
には/usr/local/bin
、/usr/bin
、/bin
(少なくとも)Cygwin以外のディレクトリの前。
コメント
回答
インストールされていますか? 「どちらを見つける」は何を返しますか? Windowsには、独自の検索がmiaの場合にCygwinが使用するコマンドライン検索が組み込まれていることに注意してください。
回答
Gillesの答えは、Windowsバージョンのfind
コマンドがcygwinバージョンの前にあるため、呼び出されているという点で正しいです。
Cygwinを先に置くただし、windows find
コマンドを使用するバッチファイルは、実際にはcygwin find
コマンドを呼び出すことを意味します。
両方が機能するための最も共生的な方法は、私の意見では、以下を実行することです。
- cygwin
find
コマンドを実行し、名前を変更/コピーしてlfind.exe
(またはWindowsのPATHにない他の名前) -
~/.bashrc
ファイルに次の行を追加しますalias find=lfind
このように、find
cygwinターミナルからtを使用しますcygwinバージョンですが、バッチファイルはWindowsバージョンを使用します。
注:PATHにcygwin binディレクトリが必要ですが、Windowsシステムディレクトリからさらに戻すことができます。
回答
Cygwinをインストールする場合、要求されない限り、可能なすべてのパッケージがインストールされるわけではありません。目的のパッケージを追加するには、スーパーユーザーのこちらの説明をご覧ください。
または、次の操作を実行してください。
- セットアップを開始し、ミラーを選択して、パッケージ画面に移動します
- 上部のラジオボタンリストから[保持]を選択します
- 関連するグループの下の目的のパッケージ
- [続行]を選択
回答
これがネイティブwin32ポートとしてのGNU-utilsです。 cygwinを実行する必要はなく、grep、sed、awk、find、less、cat、tacなどを含むシェル(sh.exe)が付属しています。
Windowsパスは保持されますが、検索をより簡単にするために、検索の名前をgfind
(gnu-find)またはsearch
に変更することもできます。アクセス可能で、coreutilsディレクトリをPATHに追加します。
find
/usr/bin/find
と入力します。パス内の/usr/bin
では、シェルは$ PATHにある最初のfind
を使用していると思います。これはシステムのものです。 ('とにかく必要なかったため)を削除しようとしましたが、ランダムなシステムスクリプトの中にはこのfind
。したがって、これを正しい方法で修正するには、エイリアスalias find="/usr/bin/find"
を~/.bashrc
(または'再使用)。