리눅스에는 다양한 작업을 수행할 수 있는 수많은 명령어가 존재합니다. 그중에서도 파일 관리자처럼 디렉터리의 내용을 나열하고 싶다면 몇 가지 명령어를 활용할 수 있습니다. 지금부터 하나씩 자세히 살펴보겠습니다.
ls – 가장 기본적인 디렉터리 목록 확인 명령어
디렉터리 내용을 나열하는 가장 대표적인 리눅스 명령어는 ls입니다. 기본적으로 ls는 현재 디렉터리의 내용을 열(column) 단위로 정렬하여 보여주며, 파일과 디렉터리를 서로 다른 색상으로 구분해 표시합니다.
사용자가 직접 생성한 디렉터리는 이름이 작은따옴표(' ')로 감싸져 표시되고, 시스템이 생성한 디렉터리는 따옴표 없이 그대로 표시됩니다. 파일, 디렉터리, 스크립트 이름에 적용되는 색상은 터미널에서 사용 중인 비주얼 테마에 따라 달라집니다.
ls는 기본적으로 현재 위치한 디렉터리의 내용만 보여줍니다. 다른 디렉터리의 내용을 확인하려면 명령어 뒤에 해당 경로를 추가하면 됩니다:
ls /add/file/path/here
-a 옵션을 추가하면 숨김 파일까지 함께 표시할 수 있습니다:
ls -a
또한 -l 옵션과 -h 옵션을 함께 사용하면 상세 목록(long-list) 형식과 사람이 읽기 쉬운(human readable) 형식으로 출력됩니다.
ls -lh
dir – ls와 유사한 열 단위 출력 명령어
dir 역시 ls처럼 디렉터리의 내용을 열 단위로 나열합니다. 다만 이름에 공백 같은 특수 문자가 포함된 경우, 해당 문자 앞에 백슬래시(\)가 붙어 표시됩니다. ls에 사용할 수 있는 모든 옵션(flag)은 dir에서도 동일하게 사용할 수 있습니다.
dir은 사실상 아래 명령어와 같은 방식으로 동작합니다:
ls -C -b
각 옵션의 의미는 다음과 같습니다:
-C : 출력 결과를 열 단위로 표시-b : 특수 문자 앞에 백슬래시를 붙여 표시
vdir – 상세 정보를 보여주는 목록 명령어
디렉터리 내용을 확인하는 또 다른 명령어로 vdir이 있습니다.
이 명령어는 디렉터리 내용을 긴 목록(long listing) 형식으로 출력합니다. 마찬가지로 이름에 포함된 특수 문자 앞에는 백슬래시가 붙습니다. 상세 목록에는 파일이나 디렉터리의 권한(permission), 링크 수, 소유자, 그룹 소유자, 파일 크기, 마지막 수정 시간, 파일/디렉터리 이름 등의 정보가 함께 표시됩니다.
vdir은 아래 명령어와 비슷하게 동작합니다:
ls -l -b
각 옵션의 의미는 다음과 같습니다:
-l : 디렉터리 내용을 상세 목록 형식으로 표시-b : 특수 문자 앞에 백슬래시를 붙여 표시
ls로도 충분한데 왜 dir과 vdir이 존재할까?
셸 명령어는 스크립트(script) 안에서 자주 사용됩니다. 이렇게 작성된 스크립트의 출력 결과는 터미널 화면에 표시되거나, 파일로 저장(리디렉션)되거나, 다른 명령어의 입력으로 전달(파이프)될 수 있습니다. 그런데 일부 상황에서는 스크립트 실행 중 성능 문제로 인해 ls가 예상대로 동작하지 않는 경우가 있었습니다. 이를 해결하기 위해 리눅스 개발자들은 ls와 동일한 결과를 출력하면서도 이러한 성능 문제가 발생하지 않는 두 가지 대체 명령어, 바로 dir과 vdir을 만들었습니다.
또한 일부 사용자들은 dir을 디렉터리 내용을 나열하는 DOS 명령어 "dir"의 리눅스 버전이라고 생각하기도 합니다. 하지만 이는 정확한 설명이 아닙니다.
알아두면 재미있는 팁: 색상의 비밀
ls의 출력 결과에서는 파일과 폴더가 색상으로 구분되지만, dir과 vdir의 출력 결과에서는 모든 항목이 같은 색으로 표시됩니다. 그 이유가 궁금하다면 .bashrc 파일을 살펴보면 됩니다. 홈 디렉터리에 있는 숨김 파일인 "~/.bashrc" 파일에는 아래와 같이 "ls"에 대한 별칭(alias)이 정의되어 있습니다.
즉, ls는 실제로는 ls --color=auto와 동일하게 동작하는 것입니다. 반면 "dir"과 "vdir"에 대한 유사한 별칭은 주석 처리되어 있습니다. 이 주석을 해제하면 색상이 적용된 출력 결과를 볼 수 있으며, 아래 명령어를 사용해도 같은 효과를 얻을 수 있습니다.
dir --color
리눅스에서는 하나의 작업을 수행하는 방법이 여러 가지인 경우가 많습니다. 새로운 사용자라면 자주 사용되는 기본 명령어들도 함께 익혀두면 큰 도움이 됩니다.