Raspberry Pi_Kor_16.1.4 특수 폴더와 특수 파일


Published Book on Amazon


All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1

All of IOT

Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)

최신 라즈베리파이(Raspberry Pi)로 시작하는 사

물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


16.1.4  특수 폴더와 특수 파일

 

16.1.4.1    hidden 파일 

 

Linux에서는 "."으로 시작하는 directory나 파일은 hidden 파일로 간주한다. 이들 파일들은 통상적으로 여러 application들이 여러 가지 목적으로 만들어 둔 설정파일들과 임시파일들이다. 이들은 통상적인 자료와는 구분하여 일상적인 보통 작업에서는 보이지 않도록 하기 위해서 hidden 속성을 부여하여 관리하는 것이다.

 

하지만 필요에 따라서 적당한 option을 사용하면 hidden 파일도 정상파일처럼 조회하거나 작업에 사용할 수 있다. 구체적인 사례는 [16.3.7 폴더 내의 내용 확인]에서 확인하기 바란다

 

[사용 Example]

아래 화면은 사용자 계정 "pi" home directory에 있는 hidden 파일을 포함한 모든 파일 목록을 함께 보여준 것이다.  "."으로 시작되는 많은 파일들이 있는 것을 알 수 있다.   

 

pi@raspberrypi ~ $ ls a

.              .dbus        .gconf           .minecraft     .swp

..             Desktop      .gstreamer-0.10  .netsurf       testdata

ArchiveTest    .dillo       .gvfs            .profile       .thumbnails

.bash_history  .dmrc        .icons           .pulse         .vnc

.bash_logout   Downloads    .idlerc          .pulse-cookie  .WolframEngine

.bashrc        .fltk        Image            python_games   .Xauthority

.cache         .fontconfig  .local           .scratch       .xsession-errors

.config        .galculator  .Mathematica     .sonic-pi      .xsession-errors.old


 

16.1.4.2    link 파일

 

Linux에서는 기존에 이미 있는 directory나 파일을 지칭하는 다른 파일을 만들 수 있는데, 이것을 link 파일이라고 한다. 이것은 디스크에 존재하는 특정 다른 directory나 파일을 가리킬 뿐이며, 자체적으로는 그 내부에 자료를 포함하고 있지 않다.

 

시스템에서 어떤 명령이나 프로그램에서 link 파일를 이용해서 작업을 하면 link 파일이 있는 위치와 무관하게 원본파일로 작업을 하는 것과 동일한 방식으로 명령이 실행되는 효과가 발생한다.

 

이러한 link 파일들은 원본 파일과 동일한 directory에 존재할 수도 있지만 전혀 다른 directory에 존재하고 있어도 그 효과는 동일하다.

 

Linux에서는 다음 두 가지의 link를 지원한다.

 

    soft link는 실제의 원본 파일의 위치를 가리키는 포인터 파일을 만들고, 이를 이용해서 원본파일에 연결된다이러한 soft link에는 read, write, execute에 대한 모든 권한이 지정되는데, 그렇다고 원본파일에 대한 권한이 link파일의 권한으로 적용되는 것은 아니다. 이는 MS Windows에서 사용되는 "Short Cut" 또는 "바로가기"와 같은 역할을 한다.

 

    hard link soft link와 마찬가지로 원본 파일을 가리키는 포인터 정보를 가지고 있지만, 외부적으로 표현되는 것은 일반 파일과 전혀 구분이 되지 않는다는 것이다. 따라서 특정 파일에 대해서 hard link를 만들면 하나의 파일에 대해서 두 개의 이름이 있는 것처럼 처리된다. 하지만 이러한 hard link는 단일 파일시스템에서만 사용할 수 있다는 제약이 있다.

 

시스템 관리라는 전체적 관점에서 볼 때, hard link는 원본 파일과 구분이 되지 않아서 혼동을 일으킬 수도 있고, 단일 파일시스템에서만 사용할 수 있으므로, 관리 상의 혼란을 방지하면서 여러 파일시스템에서 link 정보를 공유하기 위해서는 soft link를 사용하는 것이 좋다.  

 

 

 


 

16.1.4.3    "ln" 명령

 

시스템에서 link을 만들 때는 ln 명령을 사용하는데 구체적인 사용방법은 아래와 같다.

 

[명령 형식]

ln    [OPTION]   <source-directory/파일>     <link-directory/파일>

 

[명령 개요]

    기존에 있는 directory나 파일에 대해서 link를 만든다.

    user 권한    -- 일반 user.

 

[상세 설명]

    None

 

[주요 option]

--help

display this help and exit

-s, --symbolic

make symbolic links instead of hard links

 

 

 

[사용 Example]

아래 화면은 "testdata" directory 속에 포함되어 있는 "DebianManual.txt" 파일에 대해서 soft link hard link를 만들고 내용을 조회한 사례이다.  

 

pi@raspberrypi ~/testdata $ ls -l

-rw-rw---- 2 pi pi   80 Apr 12 15:12 DebianManual.txt

drwxr-xr-x 3 pi pi 4096 Apr 11 02:17 TestFolder01

drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02

-rw-rw---- 1 pi pi   81 Apr 11 09:03 user_guide01.txt

pi@raspberrypi ~/testdata $ link s DebianManual.txt DebianManual-softlink

pi@raspberrypi ~/testdata $ link    DebianManual.txt DebianManual-hardlink

pi@raspberrypi ~/testdata $ ls l

total 20

-rw-rw---- 2 pi pi   80 Apr 12 15:12 DebianManual-hardlink

lrwxrwxrwx 1 pi pi   16 Apr 12 14:59 DebianManual-softlink -> DebianManual.txt

-rw-rw---- 2 pi pi   80 Apr 12 15:12 DebianManual.txt

drwxr-xr-x 3 pi pi 4096 Apr 11 02:17 TestFolder01

drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02

-rw-rw---- 1 pi pi   81 Apr 11 09:03 user_guide01.txt

 

각각의 파일에 대한 내용을 조회해 보면 동일한 내용이 조회되는 것을 알 수 있다.

 

pi@raspberrypi ~/testdata $ cat DebianManual.txt

This is user guide for RaspberryPi system.

You can read this guide at any time.

pi@raspberrypi ~/testdata $ cat DebianManual-softlink

This is user guide for RaspberryPi system.

You can read this guide at any time.

pi@raspberrypi ~/testdata $ cat DebianManual-hardlink

This is user guide for RaspberryPi system.

You can read this guide at any time.

 

위의 결과 자료를 보면 soft link에 대해서는 파일 유형을 표시하는 맨 왼쪽의 처음 글자에 link 파일을 의미하는 "l"이라는 글자가 표시되어 있고, 오른쪽 파일 이름에는 원본 파일 이름이 같이 표시되는 것을 확인할 수 있다.

 

하지만 hard link에 대한 내용을 보면 파일유형에도 일반 파일과 동일하게 표시가 되어 있고, 파일 이름에도 원본 파일이 표시되지도 않아서 그 파일이 link 파일이라는 정보가 전혀 보이지 않는다.

 

 

 


 

Leave a Reply