파이프라인과 리다이렉션

업데이트:     Updated:

카테고리:

태그:

파이프라인


파이프라인은 여러 개의 명령어를 연속적으로 실행하고, 한 명령어의 출력을 다음 명령어의 입력으로 전달하는 기능입니다. 파이프( ) 기호를 사용하여 명령어를 연결하며, 첫 번째 명령어의 출력은 다음 명령어의 입력으로 전달됩니다.

예를 들어, "ls -l | grep .txt" 명령어는 현재 디렉토리에서 .txt 확장자를 가진 파일 목록을 출력한 후, 그 결과에서 “grep” 명령어를 사용하여 .txt를 포함하는 파일만 필터링합니다. 이렇게 파이프라인을 사용하면 여러 명령어를 조합하여 복잡한 작업을 수행할 수 있습니다.

리다이렉션


리다이렉션은 명령어의 입출력 방향을 변경하는 기능입니다. 리다이렉션 기호(>)와 (<)를 사용하여 입출력 방향을 지정할 수 있습니다.

  • ”>” (표준 출력)

    리다이렉션 기호는 명령어의 출력을 파일로 리다이렉션합니다. 예를 들어, “ls > file.txt” 명령어는 현재 디렉토리의 파일 목록을 “file.txt”라는 파일로 저장합니다. 이미 존재하는 파일에 리다이렉션할 경우, 기존 파일은 덮어쓰여집니다.

  • ”»” (표준 출력 append)

    리다이렉션 기호는 명령어의 출력을 파일에 추가합니다. 예를 들어, “echo “Hello” » file.txt” 명령어는 “Hello”를 “file.txt” 파일에 추가합니다. 이미 존재하는 파일에 리다이렉션할 경우, 기존 파일의 끝에 내용이 추가됩니다.

  • ”<” (표준 입력)

    리다이렉션 기호는 파일의 내용을 명령어의 입력으로 리다이렉션합니다. 예를 들어, “sort < file.txt” 명령어는 “file.txt” 파일의 내용을 읽어와서 “sort” 명령어의 입력으로 사용합니다. 파일의 내용은 표준 입력으로 간주됩니다.

조금 더 응용하자면 다음과 같이 사용할 수도 있습니다.

1
2
$ head < ps.txt > sample.txt
# 명령어1 < 들어오는 파일 > 나가는 파일

위 코드는 다음과 같이 실행됩니다.

  1. ps.txt의 내용을 head 명령의 입력 스트림으로 전환하여 전송합니다.
  2. head 명령은 입력받은 ps.txt의 내용에서 처음 10줄을 출력합니다.
  3. head 명령의 출력 스트림을 sample.txt 파일에 연결합니다.
  4. head 명령의 출력 스트림은 결과를 sample.txt 파일에 저장합니다.

리다이렉션을 사용하면 명령어의 입출력을 일로 저장하거나, 파일의 내용을 명령어의 입력으로 사용할 수 있습니다. 이를 통해 파일의 처리, 명령어의 결과 분석 등을 유연하게 할 수 있습니다.

파이프라인과 리다이렉션은 리눅스와 유닉스 시스템에서 강력한 기능으로 사용되며, 여러 명령어를 조합하고 입출력을 유연하게 처리하는 데에 매우 유용합니다.




Linux 카테고리 내 다른 글 보러가기 🤠

댓글남기기