-printf의 결과를 인용하지 않고 "find"하는 방법이 있습니까?

-printf의 결과를 인용하지 않고 "find"하는 방법이 있습니까?

nul 문자로 구분된 선두 디렉토리를 인쇄하기 위해 findwith 명령을 사용하고 싶습니다 . -printf '%h\0'나는 \0을 사용하고 있기 때문에 find 맨페이지의 "UNUSUAL FILENAMES" 섹션에 설명된 대로 find가 결과를 인용할 필요가 없거나 원하지 않습니다.

해당 옵션을 사용할 때 "내가 하고 있는 일을 정말 알고 있습니다"라고 말하고 인용하지 않을 수 있는 방법이 있습니까 -printf?

답변1

find아마도 파이프의 출력을 캡처하고 싶을 것입니다. 이 경우 인용은 활성화되지 않습니다(터미널로의 출력에만 사용됨).

예:

mkdir $'two line\ndirectory'
( cd two* && touch file )

그 다음에,

find two* -printf '%h\n'

.
two line?directory

하지만,

find two* -printf '%h\n' | cat

.
two line
directory

man find이에 대해서는 (GNU) 섹션 에 설명되어 있습니다.특이한 파일 이름:

-printf,-fprintf출력이 터미널로 전송되지 않으면 그대로 인쇄됩니다.

그렇지 않은 경우(즉, 터미널로)

[...] 지시어 %f, %h%l가 참조 %p됩니다 %P.

문서에 나와 있는 내용에 관계없이 "참조된" 파일이나 디렉터리 이름을 볼 수 없다는 점에 유의해야 합니다. ?위의 예를 보면 인쇄되지 않는 문자만 바뀌는 것을 볼 수 있습니다.

관련 정보