문제
Linux Shell에서 아래 지문의 요구사항을 만족하는 명령어로 옳은 것은?
- 'ls -al'의 결과를 'output.txt' 파일에 저장한다.
- 단, 파일을 write 또는 overwrite 하며, append는 수행하지 않는다.
① ls -al > output.txt ② ls -al < output.txt ③ ls -al << output.txt ④ ls -al >> output.txt
정답
1번
해설
정답: 1. 표준 출력을 파일에 저장(덮어쓰기)하는 리다이렉션 연산자는 '>'이다. 'ls -al > output.txt'는 ls 결과를 output.txt에 새로 쓰며, 기존 내용이 있으면 덮어쓴다(append 아님).
오답 풀이
- 1번: 'ls -al > output.txt'는 결과를 파일에 덮어쓰기 저장하므로 정답이다.
- 2번: '<'는 입력 리다이렉션(파일을 명령의 표준 입력으로 사용)이라 출력 저장 용도가 아니다.
- 3번: '<<'는 here-document(입력 리다이렉션)로 출력 저장이 아니다.
- 4번: '>>'는 출력을 파일 끝에 추가(append)하므로 "append는 수행하지 않는다"는 요구를 위반한다.
보충 개념 리다이렉션: '>'(덮어쓰기 출력), '>>'(추가 출력), '<'(입력), '2>'(표준 오류 출력), '&>'(표준 출력+오류 함께). 덮어쓰기는 '>', 이어붙이기는 '>>'로 구분한다.