polecenie find nie działa w cygwinie


10

Podczas próby uruchomienia komend find w cygwin ciągle pojawia się błąd

„ZNAJDŹ: Niepoprawny format parametru”

Jednak te same polecenia działają w systemie Linux. Co się dzieje?

Odpowiedzi:


13

Używasz komendy Windows, a nie cygwina.

Wyraźnie to widać, jeśli wpiszesz „które znajdują”

Aby to naprawić, edytuj swoją ścieżkę (Właściwości systemu -> Zaawansowane -> Zmienne środowiskowe -> Zmienne systemowe -> Ścieżka) i przenieś wpis dla cygwin na początek ścieżki. (Aby to zrobić, wystarczy skopiować całą ścieżkę, wkleić ją do Notatnika, edytować i wkleić z powrotem).

Jak wskazano w komentarzach, inną drogą jest edycja skryptów startowych bash i zmiana tam ścieżki. Powiedziałbym nawet, że jest to preferowane rozwiązanie, ponieważ znalazłem przypadek, w którym posiadanie wersji cygwins najpierw spowodowało problem.


5
to może nie być idealna poprawka; alternatywą jest edycja plików startowych bash w celu dodania ścieżek Cygwin do ścieżki systemowej zamiast ich dołączania. główna różnica polega na tym, czy najpierw chcesz znaleźć wersje Cygwin podczas uruchamiania poleceń w standardowych powłokach Windows CMD lub Explorer.
szarlatan

cygwin przygotowuje własne ścieżki do globalnej. więc jego dość dziwny OP dostaje ten błąd.
akira

Dobry punkt kwak!
dggoldst

2

Nie mogłem uruchomić poprawnego polecenia „znajdź” w powłoce poleceń systemu Windows, a modyfikacja PATH nie pomogła. Ale to zadziałało:

bash
/usr/bin/find . -iname blahblah*
exit

Wyraźna ścieżka uruchomiła właściwe „find” iz dowolnego powodu działa tylko podczas uruchamiania w bash.


To działało dla mnie najlepiej. Tworzyłem skrypt, który można uruchomić na różnych komputerach, które już miały bash. Niektórzy mieli ścieżkę bash przed \ Windows \ System32, ale niektórzy mieli ją później. Ponadto polecenie systemu Windows „znajdź” pokaże wszystkie „znajdź” w kolejności ścieżek.
PseudoNoise
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.