Published on

리눅스 ls 옵션 실전 가이드 숨김 파일과 상세 정보 제대로 보기

Authors

서버에 접속하자마자 가장 먼저 치는 명령어가 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 한 줄은 보통 아래 순서입니다.

  1. 파일 타입 + 권한: -rw-r--r--, drwxr-xr-x, lrwxrwxrwx
  2. 하드링크 수: 1, 2
  3. 소유자(user)
  4. 그룹(group)
  5. 크기(bytes)
  6. 수정 시간
  7. 이름(심볼릭 링크면 -> 대상)

(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를 단순히 “목록 보기”로만 쓰면 놓치는 게 많습니다. 아래처럼 검증 루틴으로 쓰면 장애 대응 속도가 빨라집니다.

  1. 파일이 안 보인다 → ls -a로 숨김 여부 확인
  2. 실행/접근이 안 된다 → ls -l로 권한/소유자 확인
  3. 용량이 의심된다 → ls -lh로 크기 확인
  4. 최근 변경분을 찾는다 → ls -lt로 정렬

이런 기본기만 탄탄해도, 배포 스크립트/로그 디렉터리/설정 파일 문제의 절반은 빠르게 정리됩니다.

추가로, 리눅스 환경에서 프로세스가 죽었는지 감시하고 자동 재시작까지 묶어 운영 안정성을 높이고 싶다면 다음 글도 함께 보면 흐름이 잘 이어집니다.

결론: -a와 -l만 제대로 써도 디버깅 속도가 달라진다

  • ls -a: 점(.)으로 시작하는 숨김 파일/디렉터리를 포함해 본다.
  • ls -l: 권한, 소유자/그룹, 크기, 수정 시간을 확인한다.
  • 실무 기본 조합은 ls -la(필요하면 -h, -t까지).

ls는 단순한 명령어 같지만, 옵션을 제대로 쓰면 파일/권한/배포 문제를 빠르게 좁히는 강력한 진단 도구가 됩니다.