[unix] 매개 변수 형식이 올바르지 않은 cygwin의 명령 찾기

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을 설치하는 동안 아무것도 설치해야합니까, 아니면 뭔가 잘못하고 있습니까?


답변

당신 PATH은 나쁩니다. Cygwin 디렉토리 앞에 Windows 시스템 디렉토리가 있거나 Cygwin 디렉토리가 전혀 없습니다. 이 메시지는 Windows 명령에서 온 것입니다 find( FIND대문자 로 이름을 알려주 는 힌트 임).

Cygwin 셸을 시작할 때 일반적으로을 설정해야합니다 PATH. 로그인 셸을 시작하는 것이 좋습니다 (올바로 기억하면 기본 Cygwin 시스템 메뉴 항목이 수행함). 귀하의 Cygwin에서이 PATH있어야한다 /usr/local/bin, /usr/bin그리고 /bin비 Cygwin에서 디렉토리의 (적어도) 앞.


답변

찾기가 설치되어 있습니까? “찾은 것”은 무엇을 반환합니까? Windows에는 자체 명령이 미아 일 경우 Cygwin이 결국 사용한다는 명령 줄 찾기 기능이 내장되어 있습니다.


답변

Gilles의 대답은 Windows 버전의 find명령이 cygwin 버전보다 먼저 나오기 때문에 정확합니다 .

그러나 Cygwin을 앞당기는 것은 windows find명령 을 사용하는 모든 배치 파일이 실제로 cygwin find명령을 호출 한다는 것을 의미합니다 .

제 생각에 두 가지가 작동하는 가장 공생적인 방법은 다음을 수행하는 것입니다.

  1. cygwin find명령을 찾아서 이름을 바꾸거나 복사하십시오
    lfind.exe(또는 Windows PATH에없는 다른 이름).
  2. 당신의 ~/.bashrc 파일 줄을 추가alias find=lfind

이런 식으로 findcygwin 터미널에서 실행할 때는 cygwin 버전을 사용하지만 배치 파일은 Windows 버전을 사용합니다.

참고 : 여전히 PATH에 cygwin bin 디렉토리가 필요하지만 이제 Windows 시스템 디렉토리에서 다시 돌아올 수 있습니다.


답변

Cygwin을 설치할 때 요청하지 않으면 가능한 모든 패키지가 설치되지 않습니다. 원하는 패키지를 추가하려면 설명을 살펴보십시오.
여기 에서 슈퍼 유저에 보십시오 .

또는 다음 조치를 수행하십시오.

  1. 설정을 시작하고 미러를 선택한 다음 패키지 화면으로 이동하십시오.
  2. 상단의 라디오 버튼 목록에서 “유지”를 선택하십시오
  3. 관련 그룹에서 원하는 패키지를 선택하십시오
  4. “계속”을 선택하십시오

답변

네이티브 win32 포트로서의 GNU 유틸리티는 다음과 같습니다. . cygwin을 실행할 필요가 없으며 grep, sed, awk, find, less, cat, tac 등을 포함한 쉘 (sh.exe)이 제공됩니다.

Windows 경로의 문제점은 지속되지만 찾기의 이름을 gfind(gnu-find) 또는로 search바꾸어보다 쉽게 ​​액세스 할 수 있도록하고 coreutils 디렉토리를 PATH에 추가하십시오.


답변