Cat (유닉스)
![]() | |
개발자 | AT&T 벨 연구소 |
---|---|
발표일 | 1971년 11월 3일(52년 전)(1971-11-03) |
운영 체제 | 유닉스, 유닉스 계열 |
종류 | 명령어 |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Cpuinfo_about_Intel_Celeron_M_410.png/220px-Cpuinfo_about_Intel_Celeron_M_410.png)
cat
명령어는 파일들을 연결하고 표시하기 위해 사용되는 표준 유닉스 프로그램이다. 이름은 concatenate(연결하다)의 동의어인 catenate에서 유래하였다.
규격
단일 유닉스 규격은 인수들로서 일정한 순서로 주어지는 각각의 파일들이 그 내용을 각각의 바이트들이 그것들이 읽혀지는 그대로 출력되도록 동일한 순서로서 표준 출력어에 쓰도록 지정한다. 또한 단일 유닉스 규격은 -u
라는 하나의 옵션을 명령한다.
만약 파일명이 -
로 지정된다면 cat
은 그 순서 안에 있는 바로 그 지점에서 표준 입력어를 읽는다. 만약 어떠한 파일들도 지정되지 않았다면 cat
은 입력되는 표준 입력어를 읽는다.
예시
여러개의 파일들을 합치는 명령은 다음과 같다.
cat xaa xab xac > 파일이름
또는
cat xa[a-c] > 파일이름
확장
cat
의 BSD 버전(OpenBSD 메뉴페이지에 따라서)과 cat
의 GNU coreutils 버전은 다음과 같은 옵션들을 지정한다:
-b
(GNU only:--number-nonblank
): 공백이 없는 출력어에 순서를 매긴다-n
(GNU only:--number
): 모든 출력어에 순서를 매긴다-s
(GNU only:--squeeze-blank
): 수많은 근접한 공백들을 밀착시킨다-v
(GNU only:--show-nonprinting
): 출력되지 않은 글자들을 보이는 것처럼 표시한다. 단 텝과 마지막 문자열은 제외한다.-t
on BSD,-T
on GNU:-v
을 의미하나^I
로서 텝을 표시할 수도 있다.-e
on BSD,-E
on GNU:-v
을 의미하나$
로서 마지막 문자열을 표시할 수도 있다.
유닉스 문화
Jargon File 정의
Jargon File 버전 4.4.7은 cat
의 정의로서 다음을 열거한다:
전체 파일을 스크린에 분출하거나 정지없이 어떤 다른 출력 싱크에 분출한다 (blast와 동의어).
확장어로서는 많은 양의 데이터를 준비되지 않은 타겟에 쏟아버리거나 조심스럽게 그 데이터를 열람하려는 의도없이 쏟아버리는 것을 말한다. 사용법: 바보처럼 간주된다. 드문 외부 유닉스 사이트들. 같이 보기:dd
와 BLT
유닉스 팬들 중에서cat(1)
는 사용자 인터페이스 디자인의 훌륭한 예로서 간주된다. 그 이유는 파일들 사이의 무수한 공간이나 헤더들과 같은 것들 없이 파일 내용물을 전달해 주기 때문이다. 또한 문자열로 구성하려는 파일만을 요구하지 않고 어떤 종류의 데이터라도 처리할 수 있기 때문이다.
유닉스 비판자들 사이에서는cat(1)
은 너무나 불분명한 이름 때문에 나쁜 사용자 인터페이스 디자인의 기본적인 예로 간주된다. 이것은 두 개 혹은 그 이상의 파일들을 연결하려기보다는 하나의 파일을 표준 출력어로 보내기 위해서 보다 많이 사용된다. 전자의 연산에 대한cat
이름은 말하자면 리스프의cdr
만큼 직관적이지 않다.
이러한 대항들은 일종의 만들어진 성전이다.... UUOC을 함께보라.
cat의 쓸모없는 사용
UUOC[1]은 "Useless Use of cat(cat의 쓸모없는 사용)"을 의미한다. comp.unix.shell에서 얻어진 지혜를 준수하므로 "cat의 목적은 파일들을 연결(혹은'catenate')하는 것이다. 만약 오직 하나의 파일만이 있다면, 그 파일을 아무것과도 연결시키지 않는다면 이는 시간 낭비이고 프로세스를 낭비하는 일이다." 그럼에도 불구하고 아래 같은 일을 하는 사람들이 있다.
cat file | some_command and its args .....
동일하고 더 저렴한 것 대신에
<file some_command and its args ...
이나 (동일하고 보다 더 규범적으로)
some_command and its args ... <file
1995년 이래로 UUOC에 대한 정기적인 상이 수여되었고, 이는 일반적으로 펄 권위자인 Randal L. Schwartz에 의해서 주어진다. 이 상과 다른 비슷한 상들에 대한 웹 페이지가 있다. 영국인 해커들 사이에서는 UUCO의 정형화된 예들의 활동이 때때로 demoggification으로 불린다.
가벼운 편집증 환자들은 많은 유명한 키보드 매핑들에서 < 와 > 키가 다른 키들 옆에 있도록 주어진 경우들에 대해서는 cat을 사용하는 것이 여전히 더 안전하다고 간주한다. 리스크가 낮다고 할지라도 < 대신에 > 을 사용하는 영향은 매우 크고 굉장히 비쌀 수 있다.
zcat
zcat
은 cat
과 비슷한 유닉스 프로그램으로, 개별 파일들의 압축상태를 풀고 그것들을 표준 출력어에 연결시킨다. 일반적으로 zcat
은 compress
로 압축된 파일들에서 작동되었으나, 오늘날에는 gzip
이나 심지어는 bzip2
아카이브들에서도 작동될 수 있다. 이러한 시스템들에서는 gunzip -c
과 동일하다.[2]
같이 보기
- Coreutils
- 유닉스 명령어 목록
split
, 파일을 cat이 다시 연결할 수 있는 조각들로 분리시키는 명령어tac
, 파일들을 반대로 연결시킬 수 있는 비슷한 도구type
, a DOS, OS/2 그리고 마이크로소프트 윈도우 명령어로 파일의 내용물을 표시한다.
각주
- ↑ 유즈넷의 comp.unix.shell에서 나온 말
- ↑ [1] Archived 2014년 2월 9일 - 웨이백 머신zcat manual page in FreeBSD 7.0
외부 링크
매뉴얼 페이지
기타
- UUOC awards
- v
- t
- e
- apropos
- help
- man
- banner
- bc
- cal
- clear
- date
- dd
- file
- history
- info
- lp
- lpr
- od
- pax
- size
- tee
- tput
- type
- uname
- whatis
- yes
- true와 false