Linux

Redirect

LeeJaeJun 2024. 2. 22. 18:07
728x90
반응형

Redirection이란?

  • 명령어를 통해 프로그램의 입력 및 출력을 다른 곳으로 전환하는 것
  • 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 다른 파일이나 장치로 전환하는 데 사용
  1. > 또는 1>&: 출력 리다이렉션
    • command > file: 명령어의 표준 출력을 파일로 전환합니다. 파일이 존재하지 않으면 새로 생성되며, 이미 파일이 존재하면 덮어씁니다.
  2. >>: 출력 리다이렉션(추가)
    • command >> file: 명령어의 표준 출력을 파일로 추가합니다. 파일이 존재하지 않으면 새로 생성되며, 이미 파일이 존재하면 끝에 추가됩니다.
  3. <: 입력 리다이렉션
    • command < file: 파일의 내용을 명령어의 표준 입력으로 제공합니다.
  4. |: 파이프
    • command1 | command2: command1의 출력을 command2의 입력으로 전달합니다.
  5. &> 또는 2>&1: 표준 에러를 표준 출력으로 리다이렉션
    • command &> file 또는 command 2>&1 > file: 표준 출력과 표준 에러 모두를 파일로 전환합니다.
  6. &>>: 표준 에러를 표준 출력에 추가로 리다이렉션
    • command &>> file: 표준 출력과 표준 에러 모두를 파일에 추가합니다.
  7. <<: Here 문서를 사용한 입력 리다이렉션 
    • command << marker: "marker"로 표시된 문자열을 만날 때까지의 모든 텍스트를 명령어의 표준 입력으로 사용합니다.
    • shell에서 직접 여러 줄의 텍스트를 입력할 수 있으며, 이를 특정 명령어나 스크립트의 입력으로 전달 가능
    • 주로 스크립트에서 다른 프로그램에 대한 입력으로 여러 줄의 텍스트를 제공할 때 사용
cat << END
This is line 1.
This is line 2.
END

* Here 문서: shell 스크립트에서 특정 구간에 대한 입력을 지정하는 데 사용

find / -name *.txt 1>& a.txt
# / 디렉터리부터 시작하여 모든 파일 시스템에서 확장자가 .txt인 파일을 찾습니다.
# 1>& a.txt는 표준 출력을 a.txt 파일로 리다이렉션하는 것을 의미합니다. 
# 즉, 검색 결과가 a.txt 파일에 저장됩니다.

ls -al -KnockOn 1> b.txt 2> a.txt
# -al은 ls 명령어의 옵션으로 모든 파일을 자세히 표시하고, 숨김 파일을 포함하여 표시합니다.
# -KnockOn은 경로..?
# 1> b.txt는 표준 출력을 b.txt 파일로 리다이렉션하는 것을 의미합니다. 
# 즉, 파일 및 디렉터리 목록이 b.txt 파일에 저장됩니다.
# 2> a.txt는 표준 에러를 a.txt 파일로 리다이렉션하는 것을 의미합니다. 
# 따라서 에러 메시지가 a.txt 파일에 저장됩니다.

ls -knockOn > c.txt 2>&1
# >는 표준 출력을 파일로 리다이렉션하는 것을 의미합니다. 
# 따라서 파일 및 디렉터리 목록이 c.txt 파일에 저장됩니다.
# 2>&1은 표준 에러를 표준 출력으로 리다이렉션하는 것을 의미합니다. 
# 따라서 에러 메시지도 표준 출력으로 전환되어 c.txt 파일에 저장됩니다.

 

파일 디스크립터(file descriptor)

  • UNIX 및 UNIX 계열 운영 체제에서 파일과 관련된 입출력을 조작하는 데 사용되는 정수값
  • 특히, UNIX 시스템에서 표준 입출력 및 에러 스트림을 지정하는 데 사용
  1. stdin (표준 입력, 파일 디스크립터 0):
    • 표준 입력은 프로그램에 입력을 제공하는 스트림입니다. 보통 이는 키보드 입력으로 사용되지만, 파일 디스크립터를 리다이렉션하여 파일이나 다른 스트림에서 입력을 받을 수도 있습니다.
  2. stdout (표준 출력, 파일 디스크립터 1):
    • 표준 출력은 프로그램의 출력을 포착하는 스트림입니다. 보통 이는 터미널에 출력되지만, 파일 디스크립터를 리다이렉션하여 파일이나 다른 스트림으로 출력을 보낼 수 있습니다.
  3. stderr (표준 에러, 파일 디스크립터 2):
    • 표준 에러는 프로그램에서 발생하는 오류와 관련된 메시지를 포착하는 스트림입니다. 보통 이 역시 터미널에 출력되지만, 파일 디스크립터를 리다이렉션하여 파일이나 다른 스트림으로 오류를 보낼 수 있습니다.
728x90
반응형

'Linux' 카테고리의 다른 글

Ubuntu 운영체제의 패키지  (0) 2024.02.22
Linux 디렉토리 구조  (0) 2024.02.22
"chmod: changing permissions of 'file': Operation not permitted" 오류  (0) 2024.02.22
Ubuntu 운영체제 명령어  (0) 2024.02.21
Linux 운영체제  (0) 2024.02.20