Ich benutze Cygwin in meinem Windows-Rechner. Ich versuche eine Suche durchzuführen und es wird ein nicht korrektes Parameterformat angegeben. Warum das?
$ 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
- Sollte ich während der Installation von cygwin etwas installieren oder mache ich etwas falsch?
/usr/bin/find
anstelle vonfind
/usr/bin
im Pfad, ich denke, die Shell verwendet die erstefind
in der $ PATH gefunden, die das System ist. Ich wollte es gerade entfernen (weil ich es sowieso nicht brauchte) , aber ich denke, dass einige zufällige Systemskripte genau dies erwarten könntenfind
. Um dies zu korrigieren, muss ein Aliasalias find="/usr/bin/find"
in die von~/.bashrc
Ihnen verwendete Shell geschrieben werden .Ist find installiert? Was bringt "was finden" zurück? Denken Sie daran, dass Windows über eine integrierte Befehlszeilen-Suche verfügt, die Cygwin letztendlich verwenden würde, wenn die eigene Suche mia lautet.
quelle
Die Antwort von Gilles ist
find
insofern richtig, als die Windows-Version des Befehls vor der Cygwin-Version steht und diese aufgerufen wird.Wenn Sie Cygwin
find
voranstellenfind
, rufen Batch-Dateien, die den Windows- Befehl verwenden, jetzt den Befehl cygwin auf , der möglicherweise nicht Ihren Wünschen entspricht .Meiner Meinung nach ist die symbiotischste Möglichkeit für beide die folgende:
find
Befehl cygwin und benennen Sie ihn um / kopieren Sie ihn nachlfind.exe
(oder nach einem anderen Namen, der sich nicht auf dem Windows-Pfad befindet)~/.bashrc
Datei die Zeile hinzualias find=lfind
Auf diese Weise, wenn Sie laufen
find
dem Cygwin-Terminal die Cygwin-Version, während Batchdateien die Windows-Version verwenden.Hinweis: Sie benötigen weiterhin das Verzeichnis cygwin bin in Ihrem PATH, es kann jedoch auch weiter vom Windows-Systemverzeichnis entfernt sein.
quelle
Bei der Installation von Cygwin werden nur dann alle möglichen Pakete installiert, wenn Sie dazu aufgefordert werden. Um ein gewünschtes Paket hinzuzufügen, werfen Sie einen Blick auf die Erklärung hier auf Super User.
Oder führen Sie einfach die folgenden Aktionen aus:
quelle
Hier sind die GNU-Utils als native Win32-Ports . Sie benötigen nicht Cygwin, um ausgeführt zu werden, und verfügen über eine Shell (sh.exe), die grep, sed, awk, find, less, cat, tac und vieles mehr enthält.
Das Problem mit dem Windows-Pfad bleibt bestehen, aber vielleicht benennen Sie die Suche in
gfind
(gnu-find) odersearch
in um, um den Zugriff zu erleichtern, und fügen Sie das Verzeichnis coreutils zu Ihrem PATH hinzu.quelle