Zainstalowałem emulator powłoki cmder dla Windows.
Działa dobrze, ale nie mogę użyć polecenia find w Uniksie. Najwyraźniej kiedy piszę:
'find .'
w terminalu próbuje użyć systemu Windows ZNAJDŹ i wypisuje ten błąd:
FIND: Parameter format not correct
Naprawdę chciałbym skorzystać z find, jakiejkolwiek wskazówki, jak to zrobić?
windows
command-line
unix
find
terminal-emulator
Heisenbug
źródło
źródło
find
się pojawi przedC:\Windows\System32
(gdzie Windows odnajduje życie) wPATH
zmiennej środowiskowej. Ogólnie uważa się, że nie jest to świetny pomysł, aby robić to globalnie, ponieważ może mylić inne programy, które oczekują standardowego środowiska Windows. Raczej powinieneś sprawdzić, czy możesz ustawić skrypt startowy w Cmder i sprawić, by skrypt działał w następujący sposóbset PATH=C:\path\to\folder\with\unix\find;%PATH%
cmder
, ale w systemie Linux / Unixwhich -a find
pokaże wszystkie programy, które mogłyby zostać uruchomione za pomocą polecenia find. Zidentyfikuj uniksfind
. Następnie użyj pełnej ścieżkiPATH
lub zmień kolejność katalogów lub ustaw alias, jeślicmder
obsługuje to; możesz także zmienić nazwę systemu Windowsfind.exe
nawfind.exe
. Jeśli emulujebash
, możesz użyć wbudowanegotype -a find
.sfc /scannow
which -a find
Zwraca @AFH/c/WINDOWS/system32/find /usr/bin/find
. Niestety,/usr/bin/find
przynoszące zyskiThe system cannot find the path specified.
. Wygląda na to, że potrzebna jest tutaj rzeczywista ścieżka w stylu Windows. Uruchamianietype
uruchamia system Windowstype
i wydaje się,cmder
że nie zapewnia wersji podobnej do unixa.Odpowiedzi:
Najprostszym rozwiązaniem jest utworzenie aliasu
find
pliku wykonywalnego wcmder
folderze instalacyjnym:Pozwól, że zasugeruję Ci wypróbowanie Cygwin, w którym między innymi
find
działa od razu po wyjęciu z pudełka. Właśnie tego użyłem, aby ustalić lokalizacjęcmder
dostarczonejfind.exe
.Uznanie dla @Bob i @AFH za ich wnikliwe komentarze oraz @ Luu Vinh Phuc dla sugerując inną martwe proste rozwiązanie:
To może być lepsze niż tworzenie aliasu, ponieważ
cmder
aliasy nie działają w systemie Windows 10, chyba żeUse legacy console
jest zaznaczone wecmd
właściwościach (zobacz, jak to zrobić).źródło
cmder
ma oczywistą zaletę, ponieważ jest przenośny i nie wymaga instalacji, aby wykonać go uprzywilejowany użytkownik.find
na inną, na przykładfnd.exe
Cmder\vendor\git-for-windows\usr\bin
jest dodawany do ŚCIEŻKI przezCmder\vendor\init.bat
. Niestety jest dodawany na końcu ŚCIEŻKI, więc najpierw znajduje się find.exe systemu Windows.Na szczęście łatwo to naprawić. Po prostu dodaj tę linię w środku
Cmder\config\user-profile.cmd
:set "PATH=%GIT_INSTALL_ROOT%\usr\bin;%PATH%"
źródło
Zainstalowałem smartgit w systemie Windows
Następnie dodaję C: \ Program Files (x86) \ SmartGit \ git \ bin (mój folder smartgit) do środowiska ścieżki
naciśnij win + r, aby wprowadzić bash. w powłoce bash możesz użyć polecenia find. w Cmder możesz także wpisać bash, aby z niego skorzystać
źródło