본문 바로가기

개발/Linux

[Linux] 리눅스 파일시스템 과 탐색명령어 ( ls, cd, file, pwd )

리눅스 파일시스템 과 탐색명령어 ( ls, cd, file, pwd )



리눅스 터미널을  사용할때 가장 많이 사용되는것이 파일을 탐색하는 명령어이다. GUI 처럼 직관적으로 파일들이 보이고 더블클릭하여 하위 파일 및 디렉토리를 보는것과 다르게 모두 명령어로 파일 사이에서 이동한다. 리눅스의 파일시스템은 루트(/) 밑에 모든 파일들이 존재한다. window 계열은 C: , D: 와 같이 여러 루트폴더가 존재하고 각 루트별로 트리구조의 파일시스템을 따르지만 리눅스는 하나의 트리구조만 존재하는것이다. 


아래에는 파일탐색을 위한 명령어들을 하나씩 살펴보도록 하겠다.


ls

리눅스 명령어 중 가장 많이 사용되는 명령어인 ls 명령어는 현재 디렉터리의 내용을 출력한다.

> ls [options] [directory name]


아래에는 옵션이나 디렉터리 지정없이 ls 명령어만 입력했을때이다. 현재 작업디렉터리에 존재하는 서브디렉터리와 파일목록을 보여준다.

[cent@localhost ~]$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public    test.txt


특정 디렉터리 안의 내용을 확인하고 싶다면 아래와 같이 사용하면 된다. /bin 은 루트디렉터리 의 하위디렉터리인 bin 디렉터리를 표시한다.

[cent@localhost ~]$ ls /bin
alsaunmute            egrep               mkdir          sh
arch                  env                 mknod          sleep
awk                   ex                  mktemp         sort
basename              false               more           stty
bash                  fgrep               mount          su
cat                   find                mountpoint     sync
chgrp                 findmnt             mv             tar
chmod                 fusermount          nano           taskset
chown                 gawk                netstat        tcsh
cp                    grep                nice           touch
cpio                  gtar                nisdomainname  tracepath
csh                   gunzip              ping           tracepath6
cut                   gzip                ping6          traceroute
dash                  hostname            plymouth       traceroute6
date                  ipcalc              ps             true
dbus-cleanup-sockets  iptables-xml        pwd            ulockmgr_server
dbus-daemon           iptables-xml-1.4.7  raw            umount
dbus-monitor          kbd_mode            readlink       uname
dbus-send             kill                red            unicode_start
dbus-uuidgen          link                rm             unicode_stop
dd                    ln                  rmdir          unlink
df                    loadkeys            rnano          usleep
dmesg                 logger              rpm            vi
dnsdomainname         login               rvi            view
domainname            ls                  rview          ypdomainname
dumpkeys              lsblk               sed            zcat
echo                  mail                setfont
ed                    mailx               setserial


만약 특정 디렉터리 안의 파일의 또는 서브디렉터리 를 포함 해당하는 접근권한도 함께 보고싶으면 아래와 같이 작성하면 된다.

아래와 같이 접근권한 등 다양한 정보가 함께 출력되는것을 확인할 수 있다.

[cent@localhost ~]$ ls -l /home/cent
total 36
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Desktop
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Documents
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Downloads
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Music
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Pictures
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Public
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Templates
-rw-rw-r--. 1 cent cent    5 Dec  4 07:06 test.txt
drwxr-xr-x. 2 cent cent 4096 Nov 21 08:50 Videos


ls 명령어의 옵션은 아래와 같다.


옵션

설명 

-a

  숨김파일을 포함한 모든파일을 리스트한다.

-t

  파일이 마지막으로 수정된 시간 순으로 출력한다.

-l

  해당 디렉터리에 존재하는 파일, 디렉터리의 접근권한 등 파일정보를 출력한다.

-i

  incode 를 함께 출력한다.

-r

  파일 및 디렉터리의 순서를 역순(reverse) 출력한다.

-R

  재귀적(recursive)으로 수행되는 서브디렉터리 내용도 함께 출력된다.

-S

  파일의 크기순으로 출력된다.

-F

  해당 파일의 종류도 우측에 함께 출력한다. ( / 디렉터리 , * 실행파일, @ 심벌릭 링크



cd

다른 디렉터리로 현재위치를 이동시킬때 사용된다.

> cd [directory]


현재 작업디렉터리의 상위 디렉터리로 이동하고자 한다면 아래와 같이 입력하면 된다.

[cent@localhost ~/Public]$ cd ..
[cent@localhost ~]$ 


또는 아래와 같이 절대 경로를사용하여 디렉터리를 이동할 수도 있다. 절대 경로를 사용시 루트(/) 부터 시작한다.

[cent@localhost ~]$ cd /bin
[cent@localhost /bin]$ 


또는 아래와 같이 현재 작업디렉터리 의 상위 디렉터리 의 다른 하위디렉터리로 이동할수 있다.

[cent@localhost /bin]$ cd ../etc
[cent@localhost /etc]$ 


file

확장자 명은 .jpg 이지만 실제 압축포맷 .png 와 같은 다른이미지 포맷일 수도 있다. 따라서 file 명령어는 실제 파일의 종류를 알고싶을때 사용한다.

>file 파일명


아래와 같이 현재 확장자명이 .jpg 로 되어있지만 file 명령어로 확인한 결과 ASCII 코드를 사용한 text 파일인것을 확인할 수 있다.

[cent@localhost ~]$ file test.jpg 
test.jpg: ASCII text


pwd

현재 작업중인 디렉터리의 위치를 출력한다.

>pwd

[cent@localhost ~]$ pwd
/home/cent