Original article: The Linux LS Command – How to List Files in a Directory + Option Flags

1970년 만들어진 이후 유닉스는 많은 운영 체제 시스템의 토대가 되었습니다. 대다수의 운영 체제 시스템은 실패했고, 그 외의 것들은 성공했죠.

리눅스는 가장 유명한 유닉스 기반 운영 체제 시스템입니다. 오픈 소스로, 다양한 산업군에 걸쳐 전 세계적으로 쓰이고 있습니다.

리눅스 운영 체제의 가장 근사한 점은 사용자가 셸(Shell)을 통해 컴퓨터와 상호작용할 수 있는 명령 줄 인터페이스(CLI)를 제공한다는 점입니다. 리눅스 셸은, REPL(Read, Evaluate, Print, Loop) 환경으로, 사용자가 명령을 입력하면 셸이 이를 실행 후 결과를 반환합니다.

ls 명령어는 수많은 리눅스 명령어 중 하나인데, 사용자의 CLI에서 파일이나 디렉터리 목록을 보여줍니다.

이 기사에서는, ls 명령어와 일상적으로 흔히 필요하게 될 몇 가지 중요한 플래그에 대해 더 깊이 알아보고자 합니다.

선행 조건

  • 디렉터리와 파일이 있는 컴퓨터
  • 리눅스 배포판이 하나 이상 설치되어야 함
  • CLI를 다루는 기초 수준의 지식
  • 얼굴에 미소를 띠우기 :)

리눅스 ls 명령어

리눅스 ls 명령어는 리눅스 또는 다른 유닉스 기반 운영 체제 시스템 안에서 파일이나 디렉터리를 목록으로 보여주기 위해 쓰입니다.

GUI로 제공되는 파일 탐색기파인더(Finder)처럼, ls 명령어는 현재 디렉터리를 기본으로 모든 파일과 디렉터리를 나열해 보여주거나 명령 줄로 파일과 디렉터리와 더 상호작용하도록 해줍니다.

터미널을 열어서 ls를 입력해 실제로 어떻게 동작하는지 살펴봅시다.

ls 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창

옵션과 함께 디렉터리 내 파일 나열하기

ls 명령어는 또한 몇 가지 플래그(옵션이라고도 합니다)와 함께 쓰이는데, 일종의 부가 정보로 어떻게 파일과 디렉터리가 터미널에서 보일지 바꿔줍니다.

즉, 플래그는 ls 명령어가 동작하는 방식을 바꾼다고 할 수 있습니다.

ls [flags] [directory]
추신: 이 문서 전체에 걸쳐 내용이라는 단어는 나열된 파일과 디렉터리를 일컬으며, 실제 파일/디렉터리 내부의 내용을 말하지는 않습니다.

현재 작업 중인 디렉터리의 파일을 목록화하기

현재 작업 디렉터리의 내용을 목록으로 보려면 ls 명령어를 입력해보세요

ls 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창

다른 디렉터리의 파일을 목록화하기

ls [디렉터리 경로] 명령어는 해당 디렉터리의 내용을 나열할 때 써보세요

ls Desktop 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창

루트 디렉터리의 파일을 목록화하기

루트 디렉터리의 내용을 보려면 ls / 명령어를 입력해보세요

ls / 명령어를 입력한 후 디렉터리와 파일 목록이 반환된 터미널 창

부모 디렉터리의 파일을 목록화하기

ls .. 명령어를 입력하면 한 단계 위의 부모 디렉터리의 내용을 목록화해서 보여줍니다. ls ../.. 명령어를 활용하면 두 단계 위의 내용이 보입니다

루트 디렉터리에서 cd Downloads 명령을 실행하고 Downloads 디렉터리에서 ls .. 명령어를 실행한 후 디렉터리와 파일 목록이 반환된 터미널 창

사용자의 홈 디렉터리(/home/user)의 파일을 목록화하기

ls ~ 명령어를 사용하면 사용자의 홈 디렉터리의 내용이 보입니다

ls ~ 명령어 실행 후 디렉터리와 파일 목록이 반환된 터미널 창

디렉터리만 보여주기

ls -d */ 명령어는 오직 디렉터리들만 목록 결과로 보여줍니다

ls -d */ 명령어 실행 후 디렉터리 목록만 반환된 터미널 창

파일과 서브 디렉터리를 목록화해서 보여주기

ls * 명령어는 디렉터리와 해당 디렉터리의 서브 디렉터리를 목록화해서 보여줍니다

ls * 명령어를 실행 후 디렉터리와 그의 서브 디렉터리가 함께 반환된 터미널 창

재귀적으로 파일을 목록화하기

ls -R 명령어를 입력하면, 파일과 디렉터리 및 그의 서브 디렉터리들의 마지막 파일을 만날 때까지 쭉 타고 내려가 모두 목록으로 보여줍니다

ls -R 명령어를 실행 후 파일, 디렉터리, 서브 디렉터리가 모두 재귀적으로 반환된 터미널 창
파일이 너무 많다면, 각 디렉터리의 파일 하나하나까지 모두 출력되기 때문에 작업이 완료되기까지 시간이 상당히 소요될 것입니다. 대신 한 디렉터리를 특정해 이 명령어를 실행할 수도 있습니다: ls Downloads -R

크기와 함께 파일을 목록화하기

ls -s(s는 소문자입니다) 명령어를 입력하면 파일 또는 디렉터리가 크기와 함께 목록화되어 보입니다:

ls -s 명령어를 입력한 후 파일, 디렉터리 그리고 크기가 반환된 터미널 창

긴 형식으로 파일을 목록화하기

ls -l 명령어를 입력하면 아래의 열을 포함한 표 형태로 디렉터리 내용을 목록화해 보여줍니다

  • 내용 권한
  • 내용에 대한 링크의 개수
  • 내용의 소유자
  • 내용의 그룹 소유자
  • 내용의 바이트 단위
  • 내용을 마지막으로 수정한 날짜 및 시간
  • 파일 또는 디렉터리의 이름
ls -l 명령어를 입력한 후 표 형태로 반환된 터미널 창

읽을 수 있는 파일로 표현된 긴 형식의 파일 목록화하기

ls -lh 명령어를 입력하면, 위와 같은 표 형태로 파일과 디렉터리를 목록화해 보여주지만, 각 파일/디렉터리의 크기를 표현하는 열도 추가되었습니다

ls -lh 명령어를 입력한 후 표 형태로 반환된 터미널 창

파일이나 디렉터리의 가 1,024바이트보다 클 경우 바이트(B), 메가바이트(MB), 기가바이트(GB) 또는 테라바이트(TB)로 표현됩니다.

숨김 파일을 포함해 파일을 목록화하기

ls -a 명령어를 입력하면, 숨겨진 파일 또는 디렉터리를 포함해 파일 또는 디렉터리를 목록화해 보여줍니다. 리눅스에서는 . 로 시작하는 이름은 숨김 파일로 간주합니다.

ls -a 명령어를 입력한 후 숨김 파일까지 반환된 터미널 창

숨김 파일을 포함해 긴 형식으로 파일을 목록화하기

ls -l -a, ls -a -l, ls -la, ls -al 명령어는 숨김 파일 또는 디렉터리를 포함한 부가 정보를 표 형태로 목록화해 보여줍니다

ls -la 명령어를 입력한 후 표 형태로 반환된 터미널 창

날짜와 시간으로 분류해 파일을 목록화하기

ls -t 명령어를 입력하면 파일 또는 디렉터리를 마지막으로 수정한 날짜에 따라 내림차순으로 (숫자가 작은 것에서 큰 순으로) 분류해 목록으로 보여줍니다.

-r 플래그를 넣어 ls -tr처럼 분류 순서를 반대로 할 수도 있습니다

ls -t과 ls-tr 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창

파일 크기로 분류해 파일을 목록화하기

ls -S(S는 대문자입니다) 명령어를 입력하면 파일 또는 디렉터리를 크기에 따라 내림차순으로 (숫자가 적은 것에서 큰 순으로) 분류해 목록으로 보여줍니다.

-r 플래그를 넣어 ls -Sr처럼 분류 순서를 반대로 할 수도 있습니다

ls -S와 ls -Sr 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창

파일을 목록화한 결과를 파일로 생성하기

ls > output.txt 명령어는 이전 명령어에 대한 결과를 output.txt에 삽입해줍니다. -la 같이 위에서 논의한 플래그는 전부 사용할 수 있습니다 - 여기서 중요한 점은 결과가 한 파일로 출력되지만, 명령 줄에는 기록되지 않는다는 것입니다.

원하는 대로 파일을 활용해보거나 cat output.txt로 파일 내용을 출력할 수도 있습니다.

ls > output.txt, cat output.txt 명령어를 입력한 후 파일과 디렉터리를 반환한 터미널 창

결론

필요에 따라 파일과 디렉터리를 출력해보기 위해 탐구해볼 만한 다른 수많은 명령어와 조합이 존재합니다. 기억해야 할 것은 한 번에 여러 명령어를 합칠 수 있는 능력입니다.

긴 형식으로 파일을 나열하되, 숨김 파일을 포함하고, 파일 크기에 따라 분류하고 싶다고 생각해봅시다. 명령어는 ls -alS로, ls -l, ls -a 그리고 ls -S의 조합입니다.

만일 어떤 명령어도 기억이 안 나거나 뭘 해야 할지 확실치 않다면, ls --helpman ls를 실행해 ls 명령어에 대해 가능한 모든 옵션에 대한 설명서를 볼 수 있습니다.

ls --help나 man ls 명령어를 실행한 터미널 창

읽어주셔서 감사합니다!