cat ./file | head 와 head ./file 의 차이
231
작성한 질문수 1
안녕하세요, head 명령어를 사용하는 도중에 궁금증이 생겨 질문드립니다.
어떤 파일의 앞 10줄만을 출력할 때,
1. cat ./file | head
2. head ./file
두 명령어를 모두 사용할 수 있습니다.
물론 1번은 pipe로 파일 전체 내용을 head의 input으로 주는 것이고, 2번은 head의 인자로 파일을 주는 것이므로 의미상 차이는 있습니다. 하지만 결국 결과물은 같은데, 특정 코드를 사용해야 하는 상황이 따로 있나요?
감사합니다.
답변 1
1
말씀하신대로 결과물은 같습니다. 하지만 파이프를 사용하지 않는 2번 방법이 성능상 더 좋습니다. 파이프를 사용하게되면 결국 프로세스를 하나 더 생성하게 됩니다. 파이프의 사용으로 프로세스를 추가 생성하기 때문에 성능이 떨어지게 되는 것이죠. 예를 들어주신 부분은 파이프를 한번만 사용하고, 처리 내용이 간단해서 사실 성능상 차이가 있다고 말하긴 힘들죠. 하지만 좀 더 복잡한 조건을 처리해야 하는 경우 파이프를 여러번 사용하는 경우가 있는데, 이런 작업에 경우 파이프를 많이 사용하는 것과 파이프를 사용하지 않고 처리하는 것은 처리 성능에서 꽤 큰 차이를 보입니다.
결론적으로, 파이프는 커맨드라인 툴 간의 glue 역할을 하는 아주 좋은 도구 입니다. 하지만 파이프를 남발하게 되면 성능이 떨어질 수 있으므로 높은 성능을 필요로 하는 경우에는 가급적 파이프를 사용하지 않는 것이 성능상 장점이 있습니다.
프로젝트 질문 문의
0
41
1
Unauthorized 에러
0
40
2
inotify 객체에 등록된 watch descriptor 해제 관련 질문
0
34
2
select API 실습 코드 질문
0
38
2
72강의 DNS개념(수업자료)에 자료가 없어서 문의 드립니다.
1
55
2
권한 기본값 질문
0
53
2
openclaw 실행 실패
0
548
1
교재 있나요? 서브 노트 있나요?
0
59
1
59회차 학습 미작동
0
65
2
강의 업로드 오류 확인 요청
0
61
2
macOS 실습 애플리케이션 실행이 안됩니다.
0
60
1
진로가 큰 고민입니다...
0
102
1
AWS EC2 OS 설정 관련 문의 드립니다.
0
67
1
host에서 oracle 서버 접속
0
128
3
fork() 후 address
0
40
2
bind(): Address already in use
0
58
2
강의 중 실습한 텍스트 파일 제공
1
96
2
CFLAGS에 -c 옵션 넣는게 맞는지 궁금합니다.
0
56
1
codeonweb에서 언어설정
0
74
1
다른 강좌는 생각 없으신가요??
2
310
4
선생님 네트워크 강의는 하실생각 없으신가요?
1
187
1
uniq 명령어중에 -i 옵션 질문드립니다!
1
565
4
sort가 제대로 되지 않습니다.
2
394
3
cat -n 옵션도 nl이랑 비슷한 것 같아요!
1
168
1





