작은따옴표 이스케이프 [닫기]

작은따옴표 이스케이프 [닫기]

드라이브를 지우고 Windows를 다시 설치해야 했으며, 이를 위해서는 cygwin도 다시 설치해야 했습니다.

나의 새로운 설치에서는,

ls -l "*\'*"

반품

ls: cannot access '*\'\''*': No such file or directory

지금까지 수년 동안 ls -l *\'*사용자가 파일이나 디렉터리 이름에 작은따옴표를 포함시킨 디렉터리 및 파일 목록이 제공되었습니다.

이 경우 내가 놓칠 수 있는 사항에 대한 제안 사항이 있습니까?

예를 들어, coreutils는 이름에 공백이 있는 파일이 "이 파일에 공백이 포함되어 있습니다"라고 표시되도록 일부 변경을 했으며 스위치/변수를 사용하여 꺼야 했습니다.

작은따옴표와 관련하여 표준 사용법과 유사한 변경 사항이 있는지 궁금합니다.

답변1

*와일드카드로 사용하려면 인용할 수 없습니다. 작은따옴표와 큰따옴표 모두 이스케이프됩니다.

큰따옴표는 작은따옴표도 이스케이프 처리되므로 전체 문자열이 *\'*문자 그대로 해석됩니다.

$ echo "*\'*"
*\'*

나중에 질문에서 쓴 것처럼 큰따옴표 없이 문자열을 작성하려고 합니다.

ls -l *\'*

여러분에게 더 잘 맞는 또 다른 방법은 명령을 사용하는 것입니다 find. (위와 동일한 인용 규칙을 따르지 않으므로 혼란을 드려 죄송합니다.) find를 사용하면 다음을 사용하여 디렉터리 구조에서 작은따옴표가 포함된 모든 파일을 반복적으로 검색할 수 있습니다.

find . -name "*'*"

이 예에서는 .현재 있는 디렉터리를 나타내지만 검색하려는 디렉터리의 경로로 바꿀 수 있습니다.

관련 정보