Jeg bruker cygwin i Windows-maskinen min. Jeg prøver å finne og det gir parameterformat ikke riktig. 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 noe mens jeg installerer cygwin, eller gjør jeg noe galt?

Svar

PATH er dårlig. Den har Windows-systemkataloger før Cygwin-kataloger, eller har kanskje ikke Cygwin-kataloger i det hele tatt. Denne meldingen kommer fra Windows-kommandoen find (at den rapporterer navnet som FIND med store bokstaver er et hint).

Når du starter et Cygwin-skall, må du vanligvis angi PATH. at du starter et påloggingsskall (hvis jeg husker riktig, er det hva Cygwin-systemmenyoppføringene gjør). Cygwin PATH skal ha /usr/local/bin, /usr/bin og /bin (i det minste) foran alle ikke-Cygwin-kataloger.

Kommentarer

  • Yup, at ' er sannsynligvis det. Denne feilen skyldes at funnet du brukte er Windows ' s find-kommando, ikke cygwin ' s en.
  • Eller skriv /usr/bin/find i stedet for find
  • Jeg ' har hatt /usr/bin i banen, antar jeg at skallet bruker den første find som finnes i $ PATH, som er systemet. Jeg var i ferd med å fjerne den (fordi jeg ikke ' ikke trengte det uansett) , men jeg antar at noen tilfeldige systemskripter kan forvente akkurat dette find. Så, å fikse dette på riktig måte er å skrive et alias alias find="/usr/bin/find" i ~/.bashrc (eller hvilket skall du ' gjenbruker) .

Svar

Er finne installert? Hva returnerer «hvilke finner»? Husk at Windows har en innebygd kommandolinje, og finn at Cygwin vil ende opp med å bruke hvis det er et eget funn.

Svar

Svaret fra Gilles er riktig ved at Windows-versjonen av find kommandoen kommer før cygwin-versjonen, og så blir det kalt.

Sette Cygwin foran vil imidlertid bety at alle batchfiler som bruker windows find -kommandoen nå faktisk vil kalle cygwin find -kommandoen, som kanskje ikke er det du ønsker.

Den mest symbiotiske måten for begge å jobbe på, er etter min mening å gjøre følgende:

  1. Finn cygwin find kommando og gi nytt navn / kopier den til lfind.exe (eller et hvilket som helst annet navn som ikke er «t på Windows PATH)
  2. I ~/.bashrc fil legg til linjen alias find=lfind

På denne måten når du kjører find fra cygwin-terminalen vil du bruke t han cygwin-versjon, men batch-filer vil bruke Windows-versjonen.

Merk: Du trenger fremdeles cygwin-papirkatalogen på PATH, men den kan nå være lenger tilbake fra Windows-systemkatalogen.

Svar

Når du installerer Cygwin, installerer den ikke alle mulige pakker med mindre du ber om det. For å legge til en ønsket pakke, ta en titt på forklaringen her på Superbruker.

Eller bare utfør følgende handlinger:

  1. Start oppsett, velg et speil og kom til pakkeskjermen
  2. Velg «Behold» fra listen over alternativknapper øverst
  3. Velg ønsket pakke under den aktuelle gruppen
  4. Velg «Fortsett»

Svar

Her er GNU-verktøyene som native win32-porter . De trenger ikke cygwin for å kjøres, og kommer med et skall (sh.exe), inkludert grep, sed, awk, find, less, cat, tac og mye mer.

Problemet med Windows-banen vil fortsette, men kanskje du gir navnet nytt navn til gfind (gnu-find) eller til search, for å gjøre det lettere tilgjengelig, og legg til coreutils dir i PATH.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *