![이름에 ext가 없지만 속성에 확장자가 있는 파일을 식별하는 방법(예: 실제로 텍스트 문서인 nav.example.file)](https://rvso.com/image/111986/%EC%9D%B4%EB%A6%84%EC%97%90%20ext%EA%B0%80%20%EC%97%86%EC%A7%80%EB%A7%8C%20%EC%86%8D%EC%84%B1%EC%97%90%20%ED%99%95%EC%9E%A5%EC%9E%90%EA%B0%80%20%EC%9E%88%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%8B%9D%EB%B3%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(%EC%98%88%3A%20%EC%8B%A4%EC%A0%9C%EB%A1%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EB%AC%B8%EC%84%9C%EC%9D%B8%20nav.example.file).png)
find -maxdepth 1 ! -name "*.*" -print
이는 XML 문서인 INSSO.TEST.20100503.16400006과 같은 파일 이름을 식별하지 않습니다.
답변1
이름이 아닌 파일 내용을 기준으로 파일을 찾으려면 해당 파일을 살펴봐야 합니다. 찾다그 자체로는 그렇게 할 수 없지만 다른 프로그램을 실행하도록 알릴 수 있습니다.
나는부터 시작할 것이다파일(1), 파일에 대한 설명을 인쇄합니다. XML 파일에 유용하다면 다음과 같은 경우 파일 이름을 인쇄하는 스크립트를 작성하겠습니다.찾다맞는 타입이라고 하더군요. 그런 다음 다음을 사용하여 모든 적합한 파일에 대해 해당 스크립트를 호출합니다.
find . -type f -exec my-xml-detector {} \;
답변2
현재 디렉터리에서 확장자가 없거나 길이가 3자 이상이거나 빈 확장자가 있는 파일을 찾으려면 다음을 수행할 수 있습니다.
find . ! -name . -prune ! -name '?*.[!.]' \
! -name '?*.[!.][!.]' \
! -name '?*.[!.][!.][!.]'
(파일 이름에 유효한 문자를 형성하지 않는 바이트 시퀀스가 포함되어 있지 않다고 가정합니다).