리눅스에서 파일을 열려고 하는데 다음과 같은 오류를 만날 때가 있다.

정상적으로 파일을 읽을 것으로 예상했지만, 읽기는 커녕 아무런 반응도 일으키지 않고 있다.
왜 이런 일이 발생할까?
리눅스 CLI에서는 관례적으로 - 또는 --으로 시작하는 값은 명령어의 옵션으로 처리된다.
# 예시
ls -l
rm -rf
따라서 -test.txt라는 파일이 있다고 할때,
cat -test.txt는 -test.txt라는 파일이 아니라 존재하지 않는 옵션을 전달한 것으로 인식된다.
해결 방안
1. -- 사용하기
cat -- -
--이후에 오는 값은 옵션이 아닌 순수한 인자로 처리하라는 의미이다.
2. 경로 명시하기
cat ./-
./이 붙는 순간 쉘은 이를 현재 디렉토리의 파일 경로로 인식한다.
3. 절대경로 사용하기
cat /home/user/-
- 경로 자체가 명확하기 때문에 옵션으로 해석될 여지가 없다.
위 규칙은 대부분의 Unix 계열 명령어에서 동일하게 적용되는 규칙이다.
'CS > 운영체제' 카테고리의 다른 글
| cat 명령어와 바이너리 파일: ASCII text vs data 파일의 차이 (0) | 2026.02.06 |
|---|---|
| 공백이 포함된 파일명 여는 방법 (0) | 2026.02.06 |
| SSH로 원격 서버에 접속하기 (0) | 2026.02.06 |
