Folosesc cygwin în mașina mea Windows. Încerc să fac o căutare și oferă formatul parametrilor nu este corect. De ce este asta?
$ 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
- Ar trebui să instalez ceva în timp ce instalez cygwin sau fac ceva greșit?
Răspuns
PATH
este rău. Are directoare de sistem Windows înainte de directoarele Cygwin sau poate nu are deloc directoare Cygwin. Acest mesaj provine din comanda Windows find
(că își raportează numele ca FIND
în majusculă este un indiciu).
Când porniți un shell Cygwin, de obicei trebuie să setați PATH
. Vă recomandăm că porniți un shell de conectare (dacă îmi amintesc corect, așa fac intrările implicite din meniul sistemului Cygwin). Cygwin PATH
ar trebui să aibă /usr/local/bin
, /usr/bin
și /bin
(cel puțin) înaintea oricărui director care nu este Cygwin.
Comentarii
Răspuns
Este găsit instalat? Ce se întoarce „care găsește”? Amintiți-vă că Windows are o linie de comandă încorporată pe care Cygwin ar ajunge să o folosească dacă propria sa găsire este mia.
Răspuns
Răspunsul de la Gilles este corect prin faptul că versiunea pentru Windows a comenzii find
vine înainte de versiunea cygwin și așa se numește.
Punerea Cygwin înainte totuși va însemna că orice fișier batch care utilizează comanda Windows find
va apela acum de fapt comanda cygwin find
, care poate să nu fie ceea ce want.
Cel mai simbiotic mod de a lucra ambii, în opinia mea, este de a face cele de mai jos:
- Localizați cygwin
find
comandați și redenumiți-o / copiați-o înlfind.exe
(sau orice alt nume care nu este „în Windows PATH) - În
~/.bashrc
fișier adăugați liniaalias find=lfind
În acest fel, când rulați find
de la terminalul cygwin veți folosi t versiunea cygwin, dar fișierele batch vor folosi versiunea Windows.
Notă: Veți avea nevoie în continuare de directorul bin Cygwin de pe PATH, dar acum poate fi mai înapoi din directorul sistemului Windows.
Răspuns
Când reinstalați Cygwin, nu instalează toate pachetele posibile decât dacă vi se solicită acest lucru. Pentru a adăuga un pachet dorit, aruncați o privire la explicația aici la Super User.
Sau efectuați următoarele acțiuni:
- Porniți configurarea, selectați o oglindă și accesați ecranul pachetelor
- Selectați „Păstrați” din lista de butoane radio din partea de sus
- Selectați pachetul dorit în grupul relevant
- Selectați „Continuați”
Răspundeți
Iată GNU-utils ca porturi win32 native . Nu au nevoie de cygwin pentru a fi rulat și vin cu un shell (sh.exe), inclusiv grep, sed, awk, find, less, cat, tac și multe altele.
Problema cu calea Windows va persista, dar poate redenumiți căutarea la gfind
(gnu-find) sau la search
, pentru a o face mai ușoară accesibil și adăugați direcția coreutils în PATH.
/usr/bin/find
în loc defind
/usr/bin
în cale, cred că shell-ul folosește primulfind
găsit în $ PATH, care este cel de sistem. Am fost pe punctul de a-l elimina (pentru că nu am ' oricum nevoie de el) , dar cred că unele scripturi de sistem aleatorii s-ar putea aștepta doar la acestfind
. Deci, soluționarea corectă este să scrieți un aliasalias find="/usr/bin/find"
în~/.bashrc
(sau orice alt shell pe care îl ' re using) .