- Published on
리눅스 ls 옵션 실전 가이드 숨김 파일과 상세 정보 제대로 보기
- Authors
- Name
- 스타차일드
- https://x.com/ETFBITX
서버에 접속하자마자 가장 먼저 치는 명령어가 ls인 경우가 많습니다. 그런데 막상 문제를 추적해야 할 때(설정 파일이 안 보인다, 권한이 이상하다, 파일이 분명히 있는데 목록에 없다) 기본 ls 출력만 보고는 중요한 정보를 놓치기 쉽습니다.
이번 글에서는 ls의 대표 옵션인 **숨김 파일 보기 -a**와 **상세 정보 보기 -l**를 중심으로, 실무에서 자주 겪는 헷갈림 포인트와 트러블슈팅까지 한 번에 정리합니다.
ls 기본 동작부터 이해하기
ls는 기본적으로 현재 디렉터리의 항목을 이름만 출력합니다.
ls
여기서 중요한 기본 규칙이 하나 있습니다.
- 이름이
.(점)으로 시작하는 파일/디렉터리는 숨김(hidden) 처리되어 기본 출력에서 제외됩니다.- 예:
.env,.git,.bashrc,.ssh/
- 예:
그래서 “분명 설정 파일을 만들었는데 안 보인다”는 상황의 상당수가 사실은 숨김 파일 문제입니다.
숨김 파일 보기: -a 옵션
숨김 파일까지 모두 보고 싶다면 -a를 사용합니다.
ls -a
-a를 쓰면 왜 .와 ..가 같이 보일까?
-a는 “숨김 파일 포함”이기 때문에, 숨김 디렉터리 엔트리인 .와 ..도 함께 보여줍니다.
.: 현재 디렉터리..: 상위 디렉터리
이게 거슬리면 -A(거의 all)를 사용하면 됩니다.
ls -A
-A는 숨김 파일은 보여주되.와..는 제외합니다.
실전 예시: .env, .git이 안 보일 때
# 프로젝트 루트에서
ls
# .env가 안 보임
ls -a
# .env, .git, .github 등이 보임
특히 배포/실행 환경에서 .env나 .config류 파일은 숨김인 경우가 많아, 문제 분석 시 -a는 거의 습관처럼 쓰게 됩니다.
상세 정보 보기: -l 옵션
-l은 long listing format으로, 파일의 권한/소유자/그룹/크기/수정 시간 같은 메타 정보를 한 줄로 보여줍니다.
ls -l
예시 출력(환경에 따라 다름):
-rw-r--r-- 1 ubuntu ubuntu 5321 Feb 20 10:12 app.conf
drwxr-xr-x 2 ubuntu ubuntu 4096 Feb 21 09:01 logs
lrwxrwxrwx 1 ubuntu ubuntu 11 Feb 22 08:30 current -> releases/42
ls -l 출력 컬럼 읽는 법
ls -l 한 줄은 보통 아래 순서입니다.
- 파일 타입 + 권한:
-rw-r--r--,drwxr-xr-x,lrwxrwxrwx - 하드링크 수:
1,2등 - 소유자(user)
- 그룹(group)
- 크기(bytes)
- 수정 시간
- 이름(심볼릭 링크면 -> 대상)
(1) 파일 타입
-: 일반 파일d: 디렉터리l: 심볼릭 링크
(2) 권한 9자리(rwx)
rwxr-xr-x처럼 9자리는 3개씩 끊어 읽습니다.
rwx(owner)r-x(group)r-x(others)
예를 들어 -rw-r--r--는:
- 소유자: 읽기/쓰기 가능
- 그룹/기타: 읽기만 가능
트러블슈팅: 실행이 안 될 때(권한 문제)
스크립트가 “Permission denied”로 실행이 안 되면, 먼저 ls -l로 실행 권한(x)이 있는지 확인합니다.
ls -l deploy.sh
출력이 이렇게 나오면:
-rw-r--r-- 1 ubuntu ubuntu 1200 Feb 22 09:00 deploy.sh
실행 권한 x가 없으므로 다음처럼 부여합니다.
chmod +x deploy.sh
ls -l deploy.sh
# -rwxr-xr-x ... 로 바뀌는지 확인
트러블슈팅: 소유자/그룹이 꼬였을 때
배포 디렉터리에 파일이 생성되는데 웹 서버가 읽지 못한다면(예: nginx, www-data), 소유자/그룹을 ls -l로 확인합니다.
ls -l /var/www/app
소유자/그룹이 기대와 다르면 chown으로 조정합니다(주의해서 사용).
sudo chown -R www-data:www-data /var/www/app
-a와 -l은 같이 쓴다: ls -la
실무에서는 보통 숨김 파일도 보고 메타 정보도 보고 싶습니다. 그래서 가장 많이 쓰는 조합이 -la입니다.
ls -la
또는 -al도 동일합니다.
예시: 홈 디렉터리에서 설정 파일 점검
cd ~
ls -la
여기서 .bashrc, .profile, .ssh/ 같은 파일/디렉터리의 권한이 너무 널널하지 않은지 확인할 수 있습니다.
자주 같이 쓰는 실전 옵션 조합(보너스)
이번 글의 핵심은 -a, -l이지만, 함께 알아두면 생산성이 확 올라가는 조합도 있습니다.
사람이 읽기 좋은 크기: -h
-l은 크기를 바이트로 보여주기 때문에 큰 파일은 직관적이지 않습니다.
ls -lh
K, M, G 단위로 표시됩니다.
최신 수정 순 정렬: -t
로그나 배포 결과를 볼 때 유용합니다.
ls -lt
디렉터리만 보고 싶을 때
ls -ld */
-d는 “디렉터리 자체를 항목으로 출력”하는 옵션이라,*/글로빙과 함께 쓰면 디렉터리 목록만 깔끔하게 확인할 수 있습니다.
Best Practice: ls를 ‘검증 도구’로 쓰는 습관
ls를 단순히 “목록 보기”로만 쓰면 놓치는 게 많습니다. 아래처럼 검증 루틴으로 쓰면 장애 대응 속도가 빨라집니다.
- 파일이 안 보인다 →
ls -a로 숨김 여부 확인 - 실행/접근이 안 된다 →
ls -l로 권한/소유자 확인 - 용량이 의심된다 →
ls -lh로 크기 확인 - 최근 변경분을 찾는다 →
ls -lt로 정렬
이런 기본기만 탄탄해도, 배포 스크립트/로그 디렉터리/설정 파일 문제의 절반은 빠르게 정리됩니다.
추가로, 리눅스 환경에서 프로세스가 죽었는지 감시하고 자동 재시작까지 묶어 운영 안정성을 높이고 싶다면 다음 글도 함께 보면 흐름이 잘 이어집니다.
결론: -a와 -l만 제대로 써도 디버깅 속도가 달라진다
ls -a: 점(.)으로 시작하는 숨김 파일/디렉터리를 포함해 본다.ls -l: 권한, 소유자/그룹, 크기, 수정 시간을 확인한다.- 실무 기본 조합은
ls -la(필요하면-h,-t까지).
ls는 단순한 명령어 같지만, 옵션을 제대로 쓰면 파일/권한/배포 문제를 빠르게 좁히는 강력한 진단 도구가 됩니다.