[목차] == 개요 == Catenate(연결하다, 결합하다) 또는 Concatenate 에서 따온 명령어로 기본적으로는 표준 입력을 표준 출력으로 이어주는 역할을 한다.[* 아무 인자 없이 cat을 실행한 다음 아무 글자나 치고 엔터를 눌러 보자. 메아리처럼 방금 입력한 문장이 그대로 돌아올 것이다.] > NAME > cat - concatenate files and print on the standard output man cat 으로 확인하면 위와 같이 나온다. == 용도 == 본래 용도는 2개 이상의 파일을 서로 이어 붙혀 하나로 만들기 위한 '''파일 병합 명령'''이다. 이름 그대로 catenate 의 역할이다, >{{{cat a.txt b.txt c.txt > all.txt }}} 위와 같이 실행하면 a.txt b.txt c.txt 를 모두 붙여서 all.txt 파일을 생성한다. 이게 원래의 용도이다. >{{{cat a.txt b.txt c.txt }}} 그런데, 리다이렉션 없이 이와 같이만 실행하면 3개의 파일을 모두 표준 출력(=stdout) 에 출력한다. >{{{cat a.txt }}} 그런데, 인자를 하나만 주어도 되고, 이렇게 실행하면 a.txt 를 stdout 에 출력한다. cat 의 원래 용도와는 달리 이 용도로 더 많이 사용된다. 주로 짧은 텍스트 파일의 내용을 화면에 출력해주는 용도로 많이 쓰인다. 하지만, 파일의 내용이 길면 보기가 어렵고(특히나 가상 콘솔에서는 스크롤을 할 수 없어 이런 불편함이 더욱 커진다.) 바이너리 파일을 cat 하면 파일을 있는 그대로 화면에 뿌려 버리기 때문에 제어 문자나 특수 문자로 인식하여 화면이 왕창 깨져 버린다. 그래서 유닉스/리눅스에 익숙한 유저들은 주로 [[less(UNIX)|less]]를 사용해 파일을 읽는다. 간단한 출력 명령이지만, 유닉스/리눅스의 리다이렉션 및 파이핑 기능을 이용하여 파일 복사, 데이터 복사[* 가령, 일반적인 방법은 아니지만 cat만으로 iso파일을 구울 수 있다! 전통적으로 유닉스에서는 블록 장치와 파일을 동일한 인터페이스로 처리하기 때문.] 파일 병합[* 여러 개의 파일을 하나의 파일로 합친다.] 등의 기능도 수행 가능하다. == 사용법 == || -v || --show-nonprinting || 화면에 표시할 수 없는 글자를 아스키로 인코딩(=치환)해서 보여준다. 상술한 예시와 같이 바이너리를 펼쳐볼 때 화면이 박살나는 것을 막을 수 있으며, grep등을 사용한 검색 등에도 유용해진다. || == 기타 == 변형판으로 출력을 [[디자이너를 괴롭히는 방법|아주 다채롭게]] 꾸며주는 [[https://github.com/busyloop/lolcat|lolcat]] 명령어도 존재한다. 이름의 유래는 당연히 영미권의 유명한 밈인 LOLcat. [include(틀:문서 가져옴, version=25, title=CAT)] [[분류:UNIX/명령어]]