Solaris find는 printf 작업을 지원하지 않습니다.

Solaris find는 printf 작업을 지원하지 않습니다.

누구든지 아래와 같은 Solaris 명령을 제공할 수 있습니까?

$ find . -type f -printf '%f,%h\n'

코드를 실행한 후 "printf find 옵션 오류: [-H|-L] 경로 목록 조건자 목록 오류"가 발생합니다.

Solaris UNIX 환경은 Printf를 지원하지 않습니다.

자세한 내용은 다음 링크를 참조하세요.

https://askubuntu.com/questions/818478/how-to-create-a-new-file-which-provides-filename-and-its-source-directory-inform/818480

http://explainshell.com/explain?cmd=find+sample+-type+f+-printf+%27%25f%2C%25h%5Cn%27

미리 감사드립니다

답변1

-printf작업은 GNU find에만 해당되므로 GNU find를 실행하지 않는 플랫폼에서는 사용할 수 없습니다. 별도로 설치하지 않는 한, 비임베디드 Linux 및 Cygwin에서만 GNU find를 실행합니다.

당신은 할 수Solaris에 GNU 찾기 설치.

또는 이식 가능한 기능만 사용하도록 스크립트를 다시 작성할 수 있습니다. 보편적인 번역 방법은 없습니다 -printf. 지정자마다 다르므로 다른 도구가 필요합니다. %f및 의 경우 %h파일 이름의 일부이므로 쉽습니다. 파일 이름이 쉘 변수에 있는 경우 x매개변수 확장 구성을 사용하여 기본 이름(접두사가 제거됨 */)과 디렉토리 이름(접미사가 제거됨 /*)을 추출할 수 있습니다.

find . -type f -exec sh -c 'for x do printf %s,%s\\n "${x##*/}" "${x%/*}"; done' sh {} +

관련 정보