Comet5 블로그
생산성 도구

터미널 작업 실수 줄이기: 경로·검색·인용부호

Comet5 · 최초 발행 · 수정 · 약 2분

공백이 있는 경로와 파일 목록을 다루는 명령 예제로 작업 범위를 먼저 확인합니다.

이 글의 목차

터미널 작업에서 줄일 수 있는 실수는 대부분 현재 위치, 대상 파일, 인용부호를 확인하는 습관과 관련이 있습니다. 아래 예제는 macOS나 Linux의 일반적인 셸 환경을 대상으로 하며 파일 삭제 명령은 포함하지 않습니다.

현재 위치와 Git 변경부터 확인하기

pwd
ls -la
git status --short

프로젝트 안이라고 생각했지만 상위 폴더에 있을 수 있습니다. 스크립트가 상대 경로를 사용한다면 현재 위치가 결과를 바꿉니다. Git 저장소가 아닌 폴더에서는 마지막 명령이 실패하므로 메시지를 읽고 위치를 확인합니다.

공백과 와일드카드 구분하기

mkdir -p 'demo workspace'
printf '%s\n' 'hello world' > 'demo workspace/note.txt'
cat 'demo workspace/note.txt'

이 예제는 작은 실습 폴더와 파일을 만듭니다. 작은따옴표로 묶은 경로는 공백을 포함한 하나의 인수입니다. *를 인용하면 문자 자체가 되고, 인용하지 않으면 셸이 파일 목록으로 확장할 수 있습니다. 변수 값의 경로는 보통 큰따옴표로 감싸 분리와 확장을 막습니다.

명령을 문서에 붙여 넣을 때는 역따옴표나 $()가 명령 치환으로 실행될 수 있다는 점도 주의합니다. 읽기용 텍스트와 실행용 코드를 구분해서 확인합니다.

변경 전에 검색 결과를 보기

ripgrep이 설치되어 있다면 파일 목록과 텍스트 검색을 나눌 수 있습니다.

rg --files -g '*.py'
rg -n 'TODO' --glob '*.py' .

무시 규칙에 따라 보이지 않는 파일이 있을 수 있습니다. 결과가 없다는 사실이 반드시 파일이 없다는 뜻은 아니므로 검색 범위와 옵션을 확인합니다. 파일 이름을 반복 처리할 때는 줄바꿈이나 공백이 들어간 이름도 고려해야 합니다.

alias는 짧음보다 예측 가능성

자주 쓰는 읽기 명령에 별칭을 붙이는 것은 편리하지만, ls처럼 익숙한 이름을 파괴적인 동작으로 재정의하지 않습니다. 별칭이 적용되는 대화형 셸과 자동화 스크립트 환경도 다를 수 있습니다. 공유 문서에는 개인 alias가 아니라 원래 명령을 적습니다.

비밀번호와 토큰을 명령줄 인수에 직접 쓰면 히스토리나 프로세스 목록에 남을 수 있습니다. 사용하는 도구의 안전한 인증 방식을 확인하고, 문제를 공유할 때도 터미널 전체 출력을 그대로 붙이지 않습니다. 반복 작업은 계획 출력이 있는 자동화로 옮길 수 있습니다.

참고 자료