본문 바로가기
OS 운영체제/LINUX

ls (파일 목록 명령어)

by yororing 2024. 4. 17.

01 ls 명령어란

1. ls 정의

  • 'list'의 약자

2. ls 명령어 기능

  • Linux 에서 file 및 directory에 관한 정보 목록을 출력 (기본값 = 현재 directory, 알파벳순) 

3. ls 명령어 문법

# ls [options] [file/directory]

 

  • options (옵션): 해당 file/directory에 관해 어떠한 정보를 출력할지 정함
  • file/directory (파일/디렉토리): 정보를 얻고자 하는 파일 또는 디렉토리
    • 여러개의 파일/디렉토리 나열 가능
    • 예) 현재 경로에 DCVBridge와 logs라는 디렉토리들이 있을 때:
    • # ls DCVBridge logs
      DCVBridge:
      asgi.py             cron_server.py   DCVapi   __init__.py  migrations   settings.json  static   wsgi.py
      create_settings.py  cron_session.py  example  management   settings.j2  settings.py    urls.py
      
      logs:
      adduser.log  cron_server.log  cron_session.log  dcvbridge.log

02 ls 명령어의 옵션

1. 옵션 종류 

옵션 설명
-a 또는 --all do not ignore entries starting with .
-A 또는 --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b 또 --escape print C-style escapes for nongraphic characters
--block-size=SIZE scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes
-c with -lt: sort by, and show, ctime (time of last modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] colorize the output; WHEN can be 'never', 'auto', or 'always' (the default)
-d 또는 --directory list directories themselves, not their contents
-D 또는 --dired generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F 또는 --classify append indicator (one of */=>@|) to entries
--file-type likewise, except do not append '*'
--format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C
--full-time like -l --time-style=full-iso
-g like -l, but do not list owner
--group-directories-first group directories before files
can be augmented with a --sort option, but any use of --sort=none (-U) disables grouping
-G 또는 --no-group in a long listing, don't print group names
-h 또는 --human-readable with -l and -s, print sizes like 1K 234M 2G etc.
-H 또는 --dereference-command-line follow symbolic links listed on the command line
-i 또는 --inode print the index number of each file
-l use a long listing format
각 파일의 모드, 링크 수, owner, group, size(byte), 최종 수정 시간 출력
identical to ll
-m fill width with a comma separated list of entries
-o like -l, but do not list group info
-r 또는 --reverse reverse order while sorting
-s 또는 --size
print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S), time (-t), version (-v), extension (-X)
--time=WORD change the default of using modification times
access time (-u): atime, access, use; change time (-c): ctime, status
birth time: birth, creation; with -l, WORD determines which time to show
with --sort=time, sort by WORD (newest first)
--time-style=TIME_STYLE time/date format with -l
-t sort by time, newest first; see --time
-w 또는 --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-Z 또는 --context
print any security context of each file
-1 list one file per line

2. 자주 사용하는 옵션 유형 

현재 작업 중인 디렉토리의 파일 목록 출력

# ls
asgi.py             cron_server.py   DCVapi   __init__.py  migrations   settings.json  static   wsgi.py
create_settings.py  cron_session.py  example  management   settings.j2  settings.py    urls.py

지정된 디렉토리의 파일 목록 출력

# ls [directory 경로]
# ls DCVapi
admin.py  dataclasses.py  error.py     model_mixin.py  tests.py
apps.py   db_models.py    __init__.py  serializer.py   views

루트 디렉토리의 파일 목록 출력

# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var       wget-log.1
boot  etc  lib   media  opt  root  sbin  sys  usr  wget-log  wget-log.2

부모 디렉토리의 파일 목록 출력

# ls ..
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var       wget-log.1
boot  etc  lib   media  opt  root  sbin  sys  usr  wget-log  wget-log.2

사용자의 홈 디렉토리(/home/user)의 파일 목록 출력

# ls ~
 Desktop/
 Documents/
 Downloads/
 ...

디렉토리만 출력

# ls -d */
 Desktop/
 Documents/
 Downloads/
 ...

파일과 서브 디렉토리 목록 출력

# ls *
'# Command.txt'         8_FlexLM_License_Usage.ipynb   proxy2.png   업무보고.ipynb
'# Dictionary.ipynb'    Jupyter사용방법.ipynb          proxy3.png   업무보고_html.txt        
'# 회사 일처리.ipynb'   proxy1.png                     README.md    연습.ipynb

'01 DCV':
code_analysis/

'02 SI':
데이터시각화/

Tableau:
01_데이터열결,준비,작업.ipynb  02_차트그리기.ipynb  images/

재귀적으로 파일 출력

  • 파일과 디렉토리 및 서브 디렉리들의 마지막 파일을 만날 때까지 쭉 타고 내려가 모든 목록 출력 
# ls -R
.:
'# Command.txt'        '02 SI'/                        proxy2.png   업무보고.ipynb
'# Dictionary.ipynb'    8_FlexLM_License_Usage.ipynb   proxy3.png   업무보고_html.txt        
'01 DCV'/               proxy1.png                     Tableau/

'./01 DCV':
code_analysis/

'./01 DCV/code_analysis':
'~$on_server.docx'   03_urls.ipynb           06_dcv_queue.ipynb      09_adduser.ipynb
 01_asgi.ipynb       04_dcv_sessions.ipynb   07_cron_session.ipynb
 02_settings.ipynb   05_dcv_servers.ipynb    08_cron_server.ipynb

'./02 SI':
데이터시각화/

'./02 SI/데이터시각화':
'# python.ipynb'   01_데이터가져오기.ipynb      데이터리포트/
 00_꾸미기.ipynb   02_Seaborn기본그래프.ipynb   연습.ipynb

'./02 SI/데이터시각화/데이터리포트':

...
  • 지정된 디렉토리의 파일들을 재귀적으로 출력:  # ls 원하는디렉토리명 -R
# ls '02 SI' -R
'02 SI':
데이터시각화/

'02 SI/데이터시각화':
'# python.ipynb'   01_데이터가져오기.ipynb      데이터리포트/
 00_꾸미기.ipynb   02_Seaborn기본그래프.ipynb   연습.ipynb

'02 SI/데이터시각화/데이터리포트':

크기와 함께 파일 목록 출력

# ls -s
total 1088
  4 '# python.ipynb'  464  01_데이터가져오기.ipynb       0  데이터리포트/
100  00_꾸미기.ipynb  520  02_Seaborn기본그래프.ipynb    0  연습.ipynb

긴 형식으로 파일 목록 출력

  • 보여주는 정보:
    • 내용 권한, 내용에 대한 링크의 개수, 내용의 소유자, 내용의 그룹 소유자, 내용의 크기 (byte), 내용을 마지막으로 수정한 날짜 및 시간, 파일/디렉토리 이름
# ls -l
total 1088
-rw-r--r-- 1 관리자 197121    867 Mar  6 09:19 '# python.ipynb'
-rw-r--r-- 1 관리자 197121 101294 Mar 20 20:55  00_꾸미기.ipynb
-rw-r--r-- 1 관리자 197121 473009 Mar 20 21:47  01_데이터가져오기.ipynb
-rw-r--r-- 1 관리자 197121 531891 Mar 22 12:46  02_Seaborn기본그래프.ipynb
drwxr-xr-x 1 관리자 197121      0 Mar 27 16:17  데이터리포트/
-rw-r--r-- 1 관리자 197121      0 Mar 20 16:41  연습.ipynb

읽기 간편하게 (human readable) 표현된 긴 형식의 파일 목록 출력

  • 보여주는 정보:
    • 내용 권한, 내용에 대한 링크의 개수, 내용의 소유자, 내용의 그룹 소유자, 내용의 크기, 내용을 마지막으로 수정한 날짜 및 시간, 파일/디렉토리 이름
# ls -lh
total 1.1M
-rw-r--r-- 1 관리자 197121  867 Mar  6 09:19 '# python.ipynb'
-rw-r--r-- 1 관리자 197121  99K Mar 20 20:55  00_꾸미기.ipynb
-rw-r--r-- 1 관리자 197121 462K Mar 20 21:47  01_데이터가져오기.ipynb
-rw-r--r-- 1 관리자 197121 520K Mar 22 12:46  02_Seaborn기본그래프.ipynb
drwxr-xr-x 1 관리자 197121    0 Mar 27 16:17  데이터리포트/
-rw-r--r-- 1 관리자 197121    0 Mar 20 16:41  연습.ipynb

 

참조

  1. https://en.wikipedia.org/wiki/Ls  
  2. ls --help
  3. https://www.freecodecamp.org/korean/news/rinugseu-ls-myeongryeongeo-diregteori-naebueseo-obsyeon-peulraegeuwa-hamgge-paileul-yeolgeohaneun-bangbeob-2/  
  4.