본문 바로가기
자바스크립트 Deep Dive

[linux] 리눅스 ^M 문자 sub Directory까지 (resursive) 삭제

by 준생님 2023. 2. 6.

CR(carriage return)은 커서를 맨앞으로 이동하는 것

LF(Line Feed)는 커서를 다음줄로 내리는 것 

 

윈도우에서는 개행을 CR+LF (캐리지 리턴 + 라인 피드)

그 이외 OS에서는 개행을 LF(라인피드)로 처리한다.

 

따라서 윈도우(CR+LF)에서 리눅스(LF)로 파일을 이동했을 때 LF는 정상 처리되고

^M (ASCII CODE %o015(10진수 : 13))라는 CR값이 나홀로 남아있다.

(파일을 저장한 Editor에 따라서 안나타날 수도 있다)

이럴경우 다음의 명령어를 치면 recursive하게 ^M(CR) 문자가 사라진다.

find . -exec perl -pi -e 's/\01//g' {} \;

 

 

역사 토막상식)

팩스 시대에서는 CR(커서를 맨앞으로 이동) LF(종이를 위로 1줄 밀어냄)가 필요했다.

그러나 메모리나 저장소가 귀하던 시절에 개행을 위해 ascii코드가 2바이트나 할당되는 것을 못참고

리눅스계열에서 LF하나로만 개행을 표현하기 시작했다고 한다.

iOS에서는 개행문자를 CR로 사용하다가 몇년전 LF로 변경했다고 한다.

 

개인적으로는 MS에서 역사와 전통을 지키는건 좋지만 이제는 통합해줬으면 좋겠다.