내 Windows 컴퓨터에서 cygwin을 사용하고 있습니다. 찾으려고 하는데 잘못된 형식의 인수가 제공됩니다. 왜 그런 겁니까?
$ 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
- Cygwin을 설치할 때 무엇이든 설치해야 합니까, 아니면 뭔가 잘못하고 있습니까?
답변1
당신의 PATH
상황은 심각합니다. Cygwin 디렉토리 앞에 Windows 시스템 디렉토리가 있거나 Cygwin 디렉토리가 전혀 없을 수도 있습니다. 이 메시지는 Windows 명령에서 나온 것입니다 find
( FIND
힌트로서 이름을 대문자로 보고합니다).
Cygwin 쉘을 시작할 때 일반적으로 이를 설정해야 합니다 PATH
. 로그인 쉘을 시작하는 것이 좋습니다(제 기억이 맞다면 이것이 기본 Cygwin 시스템 메뉴 항목의 기능입니다). Cygwin에는 Cygwin PATH
이 아닌 디렉토리 앞에 /usr/local/bin
및 (적어도)가 있어야 합니다 ./usr/bin
/bin
답변2
설치를 찾았나요? "찾은 것"은 무엇을 반환합니까? Windows에는 명령줄 조회가 내장되어 있으며 Cygwin의 자체 조회가 mia인 경우 결국 이를 사용하게 됩니다.
답변3
find
Windows 버전의 명령이 cygwin 버전보다 먼저 제공되므로 명령이 호출된다는 점에서 Gilles의 대답은 정확합니다 .
그러나 Cygwin을 앞에 놓는 것은 find
Windows 명령을 사용하는 모든 배치 파일이 이제 실제로 cygwin find
명령을 호출한다는 것을 의미하며 이는 아마도 원하는 것이 아닐 것입니다.
제 생각에는 두 가지가 가장 공생하는 방법은 다음을 수행하는 것입니다.
- cygwin
find
명령을 찾아 이름을 바꾸거나 복사합니다lfind.exe
(또는 Windows 경로에 없는 다른 이름). - 파일 에
~/.bashrc
다음 줄을 추가하십시오.alias find=lfind
이렇게 하면 find
cygwin 터미널에서 실행할 때 cygwin 버전을 사용하지만 배치 파일은 Windows 버전을 사용하게 됩니다.
참고: 여전히 PATH에 cygwin bin 디렉터리가 필요하지만 이제 Windows 시스템 디렉터리에서 더 뒤쪽에 위치할 수 있습니다.
답변4
다음은 기본 win32 포트인 GNU-utils입니다.. grep, sed, awk, find, less, cat, tac 등을 포함한 쉘(sh.exe)을 실행하고 제공하기 위해 cygwin이 필요하지 않습니다.
Windows 경로 문제는 여전히 존재하지만 find의 이름을 gfind
(gnu-find)로 바꾸거나 search
더 쉽게 액세스할 수 있도록 만들고 PATH에 coreutils 디렉터리를 추가할 수도 있습니다.