줄 바꿈을 사용하여 파일을 찾아서 격리하는 POSIX 방식의 올바른 방법은 무엇입니까?

줄 바꿈을 사용하여 파일을 찾아서 격리하는 POSIX 방식의 올바른 방법은 무엇입니까?

질문이 있습니다파일 이름에 줄 바꿈이 포함된 파일을 찾는 방법은 무엇입니까?, 허용된 답변은 개행을 사용하여 ANSI-C 인용을 통해 파일을 분리하는 것을 처리하며 ksh내부 및 외부에서는 잘 작동 bash하지만 POSIX 셸에서는 이를 어떻게 처리합니까? 구체적으로 dash.

답변1

댓글에서 토론하고 제가 인용한 관련 질문을 살펴본 후 줄 바꿈을 사용하는 한 가지 방법은 -name다음과 같이 리터럴 줄 바꿈을 사용하는 것입니다.

$ find -type f -name '*
> *'

다른 하나는 명령 대체를 통한 것입니다.

$ find -name "$(printf '*\n*' )"
./with?newline
$ ls
another execve with?newline

그러나 주목해야 할 점은POSIX 정의, 명령 대체는 "...대체 끝에서 제거되는 하나 이상의 문자 시퀀스"를 사용하여 쉘에서 수행됩니다. 그것은 다음과 같습니다:

find -type f -name '*'"$(printf '\n')"'*'

생각하는 것처럼 실패하고 **매개변수 목록을 대신 전달합니다.*[newline]*

명령 대체의 후행 개행은 아래와 같이 다양한 방법으로 처리될 수 있습니다.셸: 명령 대체에서 후행 개행('\n')을 유지합니다..

관련 정보