Ich verwende cygwin auf meinem Windows-Computer. Ich versuche einen Suchvorgang durchzuführen und das Parameterformat ist nicht korrekt. Warum ist das so?
$ 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
- Soll ich während der Installation von cygwin etwas installieren oder mache ich etwas falsch?
Antwort
Ihre PATH
ist schlecht. Es hat Windows-Systemverzeichnisse vor Cygwin-Verzeichnissen oder möglicherweise überhaupt keine Cygwin-Verzeichnisse. Diese Nachricht stammt vom Windows-Befehl find
(der Name wird als FIND
in Großbuchstaben ist ein Hinweis).
Wenn Sie eine Cygwin-Shell starten, müssen Sie normalerweise die PATH
festlegen. Ich empfehle dass Sie eine Login-Shell starten (wenn ich mich richtig erinnere, ist dies das, was die Standard-Menüeinträge des Cygwin-Systems tun). Ihr Cygwin PATH
sollte /usr/local/bin
, /usr/bin
und /bin
(zumindest) vor jedem Nicht-Cygwin-Verzeichnis.
Kommentare
- Ja, das ' ist es wahrscheinlich. Dieser Fehler ist darauf zurückzuführen, dass der von Ihnen verwendete Suchvorgang der Suchbefehl von Windows ' und nicht der Befehl von cygwin ' ist.
- Oder geben Sie
/usr/bin/find
anstelle vonfind
- ein, die ich ' hatte
/usr/bin
im Pfad, ich denke, die Shell verwendet die erstefind
, die im $ PATH gefunden wurde, der das System ist. Ich wollte es gerade entfernen (weil ich es ' sowieso nicht brauchte) , aber ich denke, einige zufällige Systemskripte könnten genau diesesfind
. Um dies richtig zu beheben, schreiben Sie einen Aliasalias find="/usr/bin/find"
in~/.bashrc
(oder in eine beliebige Shell, die Sie ' verwenden) .
Antwort
Ist find installiert? Was gibt „welcher Fund“ zurück? Denken Sie daran, dass Windows über eine integrierte Befehlszeilensuche verfügt, die Cygwin am Ende verwenden würde, wenn seine eigene Suche mia ist.
Antwort
Die Antwort von Gilles ist insofern richtig, als die Windows-Version des Befehls find
vor der Cygwin-Version steht und diese aufgerufen wird.
Cygwin voranbringen Dies bedeutet jedoch, dass alle Batch-Dateien, die den Befehl windows find
verwenden, jetzt tatsächlich den Befehl cygwin find
aufrufen, was möglicherweise nicht das ist, was Sie sind wollen.
Meiner Meinung nach ist die symbiotischste Art, wie beide arbeiten, die folgenden:
- Suchen Sie den Cygwin
find
und benenne ihn um / kopiere ihn inlfind.exe
(oder einen anderen Namen, der nicht auf dem Windows-Pfad steht) - In deiner
~/.bashrc
Datei Fügen Sie die Zeilealias find=lfind
hinzu, wenn Sie find
Vom Cygwin-Terminal aus verwenden Sie t Die Cygwin-Version, aber Batch-Dateien verwenden die Windows-Version.
Hinweis: Sie benötigen weiterhin das Cygwin-Bin-Verzeichnis in Ihrem PATH, es kann jedoch weiter vom Windows-Systemverzeichnis entfernt sein.
Antwort
Wenn Sie Cygwin neu installieren, werden nicht alle möglichen Pakete installiert, es sei denn, Sie werden dazu aufgefordert. Um ein gewünschtes Paket hinzuzufügen, lesen Sie die Erklärung hier unter Super User.
Oder führen Sie einfach die folgenden Aktionen aus:
- Starten Sie das Setup, wählen Sie einen Spiegel aus und rufen Sie den Paketbildschirm auf.
- Wählen Sie „Behalten“ aus der Optionsfeldliste oben
- gewünschtes Paket unter der entsprechenden Gruppe
- Wählen Sie „Weiter“
Antwort
Hier sind die GNU-Utils als native Win32-Ports . Sie brauchen kein Cygwin, um ausgeführt zu werden, und werden mit einer Shell (sh.exe) geliefert, die grep, sed, awk, find, less, cat, tac und vieles mehr enthält.
Das Problem mit Der Windows-Pfad bleibt bestehen, aber möglicherweise benennen Sie den Fund in gfind
(gnu-find) oder in search
um, um ihn einfacher zu gestalten Zugriff und fügen Sie das Verzeichnis coreutils zu Ihrem PFAD hinzu.