null 문자를 포함하도록 stat 출력 형식을 어떻게 지정합니까?

null 문자를 포함하도록 stat 출력 형식을 어떻게 지정합니까?

find -print0처럼 널 문자(NUL, \0, ...)를 사용하여 파일 경로를 분리하고 싶습니다.

나는 bash를 사용하고 있으며 성공하지 못하고 다음을 시도했습니다.

find $1 -print0 > dircontent
cat dircontent | xargs -0 stat --format="%X %Y %Z %f %u %g %i %h \0%n\0%s" > dirstats

"I"처럼 보이지만 null 문자 대신 리터럴 "\" 및 "0"이 있습니다.

답변1

--format퍼센트 이스케이프만 구문 분석되고 끝에 개행 문자가 추가됩니다. --printf백슬래시 이스케이프도 구문 분석되며 후행 줄 바꿈은 추가되지 않습니다.

<dircontent xargs -0 stat --printf="%X %Y %Z %f %u %g %i %h \0%n\0%s\0" > dirstats

답변2

나는 그것을 //구분 기호로 사용하고 sed -in 's/\/\//\x0/g' dirstats원하는 것을 얻습니다. 나는 여전히 덜 해킹적인 솔루션을 선호합니다.

관련 정보