질문이 있습니다파일 이름에 줄 바꿈이 포함된 파일을 찾는 방법은 무엇입니까?, 허용된 답변은 개행을 사용하여 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')을 유지합니다..