입출력이 리다이렉트되면 프로그램의 동작이 달라질까?

    대부분의 리눅스 명령과 달리, ls 명령은 표준 출력 스트림의 대상이 화면인지 아닌지(파이프 또는 그 외 대상)를 구분할 수 있다. 이를 구분하는 이유는 사용성 때문이다. 표준 출력이 화면으로 이어져 있다면 ls 명령은 가독성을 배려해 한 줄에 여러 개의 파일명을 출력한다.

    $ ls /bin
    bash      dir     kmod    networkctl      red     tar
    bsd-csh   dmesg   less    nisdomainname   rm      tempfile
    ...

    반면 표준 출력이 화면 외의 대상과 이어져 있다면 한 줄에 하나의 파일명만 출력한다. 이를 확인하기 위해 ls 명령의 출력을 cat3 명령으로 리다이렉트한다. cat 명령은 입력된 내용을 그대로 화면에 출력하는 명령이다.

    $ ls /bin | cat
    bash
    bsc-csh
    bunzip2
    busybox
    ...
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.