Z 쉘을 사용하여 터미널 세션에서 이것을 시도했습니다.
stty erase ^M
나는 다음 메시지를 받았습니다:
stty: invalid integer argument: «CCPP»
나는 무엇을 해야할지 모르겠습니다.
답변1
Z 셸에서 ^
역할은 다음과 같습니다.확장된 와일드카드인식된 문자파일 이름 확장자명령 처리의 일부입니다.
Z 쉘 매뉴얼에 설명되어 있듯이 이 패턴은 ^M
모든 파일 이름과 일치합니다.와는 별개로패턴과 일치하는 것 M
. 따라서 stty erase
현재 디렉터리의 모든 파일 이름이 뒤에 오도록 명령이 확장됩니다.이름이 있는 사람을 제외하고M
그렇다면.
상황은 간단합니다. 현재 디렉터리에 파일 이름이 있고 와일드카드 패턴이 확장되면 «CCPP»
해당 파일이 결과 목록의 첫 번째 파일이 됩니다.^M
인용 또는 이스케이프 메타문자:
stty erase '^M'
stty erase \^M
또는 Z 셸의 확장 와일드카드를 끄세요.
setopt no_extended_glob
경험 비교이 사람파일 이름이 다르고 제외 패턴이 인 사람 ?
.그 사람의 위치는 다음과 같습니다.https://askubuntu.com/a/206722/43344위의 참조는 실제로 실행되며 잘못된 인수가 실제로 제공됩니다(정확히 1자 지정자가 아닌 3자 문자열).
물론 erase
CR은 특수 캐릭터에게는 이상한 선택입니다. 하지만 정확히 왜 이런 일을 하는지는 설명하지 않겠습니다. ☺
추가 읽기
- "파일 이름 생성”.Z 쉘 manual.sourceforge.