WSL carriage return 버그

Xonic·2021년 12월 15일
0

와 정말 어이없는 상황이 생겼다..

WSL의 vim을 사용하던 도중 생긴 버그..

  • new line(줄 바꿈)은 리눅스는 \n, 윈도우즈는 \r\n으로 표현된다.
  • 이 건 둘째로 치고, 원래는 잘 되던 스크립트가 갑자기 내가 생각했던 결과로 수행되지 않았다.

  • 문제의 파일

버그

  • 내가 생각했던건 해당 파일의 이어쓰기(>> : 이어쓰기 및 없으면 생성)였는데
  • 수행 되지 않고 생성 (> : 덮어쓰기 및 없으면 생성)이 되었다.
  • 파일명이 \r 문자가 들어간걸 봐선 아무래도 carriage return 문자가 잘못 들어간듯 싶었다(오픈 카톡방에 질문 후 답변 주심)

해결

  1. 해당 파일을 cp등의 명령어를 사용하지 않고 문자만 복사해서 새로운 파일을 생성해서 저장한다.
    • 본인이 사용한 방법
  2. dos2unix 를 이용한다.
    • 파일이 너무 많다면 find <target_directory_path> -type f -exec dos2unix {} \ 를 이용해서 모두 unix 파일로 변경한다.

여담

  • 갑자기 예상치 못했고, 왜 발생하는지도 몰랐던 현상에 대해 이해하게 되었다.
  • 이게 WSL을 사용했을 때 나는 버그인지, 실제로 리눅스 등 유닉스 기반 O/S에서도 발생하는 버그인지 궁금하다.
  • 혹시 본인도 이런 버그가 발생했거나 파일에 \r이 나도 모르게 포함되어 있는지 궁금하다면
  • od -bc <file path> 로 알아 볼 수 있다
  • 예시)
profile
공부 한 것을 공유하는 블로그입니다.

0개의 댓글