개요
ls는 UNIX 및 UNIX 계열 운영체제에서 디렉터리의 파일 및 서브디렉터리 목록을 표시하는 표준 명령어이다. 본 명령은 시스템 콜 readdir() 등을 활용하여 현재 작업 디렉터리(또는 지정된 경로)의 엔트리를 읽어들인 뒤, 사용자에게 가독성 있는 형태로 출력한다.
주요 기능
- 기본 형태(
ls)는 파일 이름을 알파벳 순(기본 로케일 기준)으로 정렬하여 한 줄에 여러 개씩 출력한다. -a(또는--all) 옵션은 이름이.로 시작하는 숨김 파일을 포함해 모든 항목을 보여준다.-l옵션은 “long listing” 형식으로, 파일 유형, 권한, 소유자, 그룹, 크기, 최종 수정 시각 등을 열별로 표시한다.-h옵션은-l과 결합해 파일 크기를 바이트 단위가 아닌 인간이 읽기 쉬운 단위(K, M, G 등)로 변환한다.-R옵션은 지정된 디렉터리와 그 하위 디렉터리를 재귀적으로 탐색하여 전체 트리 구조를 출력한다.-t,-S,-r등은 정렬 기준(수정 시간, 파일 크기, 역순)과 관련된 옵션이다.
표준화 및 구현
ls는 POSIX(Portable Operating System Interface) 표준에 정의된 유틸리티이며, 대부분의 UNIX 계열 시스템(BSD, Linux, macOS, Solaris 등)에서 동일한 동작을 제공한다. GNU Coreutils, BSD ls, 그리고 macOS의 ls 등 여러 구현이 존재하지만, 옵션 명세와 기본 동작은 표준에 따라 일관성을 유지한다.
역사
초기 UNIX 버전(1970년대 초)에서 파일 목록을 표시하는 기능은 ls 명령어로 제공되었다. 최초 구현은 AT&T Bell Laboratories에서 개발된 C 언어 기반이며, 이후 다양한 UNIX 파생판에 이식되었다. GNU 프로젝트는 1992년대에 GNU Coreutils 패키지에 ls를 포함시켜 자유 소프트웨어 형태로 배포하였다.
사용 예시
| 명령 | 설명 |
|---|---|
ls |
현재 디렉터리의 파일을 기본 형식으로 출력 |
ls -l /var/log |
/var/log 디렉터리의 파일을 상세 정보와 함께 출력 |
ls -a |
숨김 파일(.으로 시작) 포함 모든 항목 표시 |
ls -lh |
인간이 읽기 쉬운 단위로 파일 크기 표시 |
ls -R . |
현재 디렉터리와 모든 하위 디렉터리를 재귀적으로 탐색 |
참고
ls는 파일 시스템의 메타데이터를 조회하는 기능이므로, 사용 권한이 제한된 파일에 대해서는 해당 권한에 따라 표시 여부가 달라진다. 또한, 최근 파일 시스템에서는 파일 이름에 유니코드 문자가 포함될 수 있으므로, 출력 인코딩 설정에 따라 가시성이 영향을 받을 수 있다.