질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

명령어 파이프 실행순서

작성자 정보

  • 서형석 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요,

명령어 파이프 실행순서에 대해 문의 드립니다.

예를 들어 $ date > date.txt | cat date.txt 이렇게 하면 그냥 왼쪽부터 순차적으로 하면 date 를 실행한 결과를 date.txt 로 생성하고 그다음 date.txt 내용을 표시해 주는걸로 생각했는데요.

실제로는 먼저 cat date.txt 가 실행되면서 존재하지 않는 파일이라고 합니다. 실제로는 존재하고 내용도 있습니다.

$ date >> date.txt | cat date.txt 를 해도 이번 date 추가는 아 보이고 append 이전만 표시해 줍니다. 실제로는 이번 것도 가지고 있습니다.

예전에 어떤 책에서 리눅스의 이런 현상에 대해 얼핏 본것도 같은데요???

그럼 진짜로 date.txt 가 없는 상태에서 date 를 실행해서 date.txt 에 집어 넣고 다음에 내용을 보여 주려면 어떻게 해야 하나요?

파이프 처리 순서가 따로 있는건가요?

전문가님들의 쉬원한 답변 부탁 드립니다.

감사합니다.
 

관련자료

댓글 2

장규승님의 댓글

  • 장규승
  • 작성일
date > date.txt ; cat date.txt

파이프가 아닌 세미콜론을 이용하면됩니다.

LUFFY님의 댓글

  • LUFFY
  • 작성일
파이프의 용도에 대해 약간 잘못 알고 계신거 같아요.

전 | 후

이런 식이면, 전의 결과값을 후의 입력값으로 받아들이는 것이 파이프의 역할입니다.

예를들면

pstree | grep httpd

pstree 해서 나온 결과값을 grep httpd 의 입력값으로 받아들여서 pstree 중에 httpd 에 해당하는 내용을 찾아냅니다.

순차적인 명령어라면 윗분의 설명처럼 ; 로 적으시면 됩니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,068 명
  • 현재 강좌수 :  35,976 개
  • 현재 접속자 :  401 명