Jeg bruger cygwin i min Windows-maskine. Jeg prøver at finde, og det giver parameterformat ikke korrekt. Hvorfor er det?

$ 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 
  • Skal jeg installere noget, mens jeg installerer cygwin, eller laver jeg noget forkert?

Svar

Dit PATH er dårligt. Det har Windows-systemmapper før Cygwin-mapper, eller måske har det slet ikke Cygwin-mapper. Denne meddelelse kommer fra Windows-kommandoen find (at den rapporterer sit navn som FIND med store bogstaver er et tip).

Når du starter en Cygwin-skal, skal du normalt indstille PATH. at du starter en login-shell (hvis jeg husker korrekt, er det, hvad standardindstillingerne i Cygwin-systemmenuen gør). Din Cygwin PATH skal have /usr/local/bin, /usr/bin og /bin (i det mindste) foran ethvert bibliotek, der ikke er Cygwin.

Kommentarer

  • Yup, at ' er det sandsynligvis. Denne fejl skyldes, at den søgning, du brugte, er Windows ' s find-kommando, ikke cygwin ' s en.
  • Eller skriv /usr/bin/find i stedet for find
  • Jeg ' har haft /usr/bin i stien, antager jeg, at skallen bruger den første find, der findes i $ PATH, som er systemets. Jeg var ved at fjerne det (fordi jeg ikke havde ' ikke brug for det alligevel) , men jeg antager, at nogle tilfældige systemskripter måske forventer netop dette find. Så det er at rette dette på den rigtige måde at skrive et alias alias find="/usr/bin/find" til ~/.bashrc (eller hvilken skal du end ' genbruger) .

Svar

Er find installeret? Hvad returnerer “hvilket fund”? Husk, at Windows har en indbygget kommandolinje, find ud af, at Cygwin ender med at bruge, hvis dets eget fund er mia.

Svar

Svaret fra Gilles er korrekt, da Windows-versionen af find kommandoen kommer før cygwin-versionen, og så kaldes det.

Sætter Cygwin foran vil dog betyde, at alle batchfiler, der bruger windows find kommandoen nu faktisk kalder cygwin find kommandoen, hvilket muligvis ikke er det, du ønsker.

Den mest symbiotiske måde for begge at arbejde på er efter min mening at gøre nedenstående:

  1. Find cygwin find kommando, og omdøb / kopier den til lfind.exe (eller ethvert andet navn, der ikke er “t på Windows PATH)
  2. I din ~/.bashrc fil tilføj linjen alias find=lfind

Denne måde, når du kører find fra cygwin-terminalen bruger du t han cygwin-version, men batchfiler bruger Windows-versionen.

Bemærk: Du har stadig brug for cygwin-bin-biblioteket på din PATH, men det kan nu være længere tilbage fra Windows-systemmappen.

Svar

Når du installerer Cygwin, installerer det ikke alle mulige pakker, medmindre du beder det om det. For at tilføje en ønsket pakke, se forklaringen her på Superbruger.

Eller bare udfør følgende handlinger:

  1. Start opsætningen, vælg et spejl og kom til pakkeskærmen
  2. Vælg “Behold” fra listen over radioknapper øverst
  3. Vælg ønsket pakke under den relevante gruppe
  4. Vælg “Fortsæt”

Svar

Her er GNU-værktøjerne som native win32-porte . De har ikke brug for cygwin for at blive kørt og kommer med en skal (sh.exe), inklusive grep, sed, awk, find, less, cat, tac og meget mere.

Problemet med Windows-stien fortsætter, men måske omdøber du søgningen til gfind (gnu-find) eller til search for at gøre det lettere tilgængelig, og tilføj coreutils dir til din PATH.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *