Root Directory 구조#
/
|-- bin -> usr/bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib -> usr/lib
|-- lib64 -> usr/lib64
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin -> usr/sbin
|-- srv
|-- sys
|-- tmp
|-- usr
| |-- bin
| |-- games
| |-- include
| |-- lib
| |-- lib64
| |-- libexec
| |-- local
| |-- sbin
| |-- share
| |-- src
|-- var
| |-- backups
| |-- cache
| |-- lib
| |-- local
| |-- lock -> /run/lock
| |-- log
| |-- mail
| |-- opt
| |-- run -> /run
| |-- spool
| `-- tmp
`plaintext- Ubuntu 24.04 LTS 기준으로 Root Directory는 다음과 같은 구조를 가지고 있습니다.
| 디렉토리 | 설명 |
|---|---|
| /bin | 기본 명령어가 저장된 디렉토리 (/usr/bin symbolic link) |
| /boot | 부팅 관련 파일이 저장된 디렉토리 |
| /dev | 시스템 장치 파일이 저장된 디렉토리 |
| /etc | 시스템 설정 파일이 저장된 디렉토리 |
| /home | 사용자 홈 디렉토리가 저장된 디렉토리 |
| /lib | 시스템 라이브러리가 저장된 디렉토리 (/usr/lib symbolic link) |
| /lib64 | 64비트 시스템 라이브러리가 저장된 디렉토리 (/usr/lib64 symbolic link) |
| /media | 이동식 미디어 장치가 마운트되는 디렉토리 |
| /mnt | 임시로 파일 시스템을 마운트하는 디렉토리 |
| /opt | 추가 소프트웨어 패키지가 설치되는 디렉토리 |
| /proc | 시스템 프로세스와 커널 정보를 제공하는 가상 파일 시스템 |
| /root | 시스템 관리자(root)의 홈 디렉토리 |
| /run | 시스템 런타임 데이터가 저장되는 디렉토리 |
| /sbin | 시스템 관리 명령어가 저장된 디렉토리 (/usr/sbin symbolic link) |
| /srv | 시스템 서비스 데이터가 저장되는 디렉토리 |
| /sys | 시스템 장치와 커널 정보를 제공하는 곳 |
| /tmp | 임시 파일이 저장되는 디렉토리 |
| /usr | 사용자 프로그램과 라이브러리가 저장되는 디렉토리 |
| /var | 가변 데이터 파일이 저장되는 디렉토리 (Log File, Mail Spool, Etc…) |
명령어들#
| 명령어 | 설명 |
|---|---|
| ls | 현재 위치의 파일과 디렉토리 목록을 표시 |
| cd | 디렉토리 변경 |
| touch | 빈 파일 생성 또는 수정 시간 변경 |
| mkdir | 새 디렉토리 생성 |
| cp | 파일이나 디렉토리를 복사 |
| mv | 파일이나 디렉토리를 이동하거나 이름 변경 |
| rm | 파일이나 디렉토리를 삭제 |
| cat | 파일 내용을 출력 |
| pwd | 현재 디렉토리의 절대 경로를 표시 |
| head | 파일의 처음 몇 줄을 출력 |
| tail | 파일의 마지막 몇 줄을 출력 |
| less | 파일 내용을 페이지 단위로 출력 |
| find | 파일이나 디렉토리를 검색 |
| grep | 파일에서 특정 문자열 검색 |
| chmod | 파일이나 디렉토리의 권한 변경 |
| chown | 파일이나 디렉토리의 소유자 변경 |
| chgrp | 파일이나 디렉토리의 그룹 변경 |
| ln | 파일이나 디렉토리에 대한 링크 생성 |
ls#
ls 명령어는 현재 위치의 파일과 디렉토리 목록을 표시하는 명령어입니다.
[imnyang@ena:~/mizuki]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
111148905_p0_master1200.png 1471583140605591756.webp 9bd2e11ba13fef113c7b3ecb900bda78.png secretfish[imnyang@ena:~/mizuki]$ ls -l # 자세한 정보와 함께 목록을 표시
total 1604
-rw-r--r-- 1 imnyang users 1535520 Mar 30 21:35 111148905_p0_master1200.png
-rw-r--r-- 1 imnyang users 5230 Mar 8 03:12 1471583140605591756.webp
-rw-r--r-- 1 imnyang users 92013 Apr 14 21:48 9bd2e11ba13fef113c7b3ecb900bda78.png
drwxr-xr-x 2 imnyang users 4096 May 6 23:36 secretfish[imnyang@ena:~/mizuki]$ ls -a # 숨김 파일을 포함한 모든 파일과 디렉토리 목록을 표시
. 111148905_p0_master1200.png 9bd2e11ba13fef113c7b3ecb900bda78.png .spy.mizuki.jpg
.. 1471583140605591756.webp secret .super-secretfish[imnyang@ena:~/mizuki]$ ls -la # 자세한 정보와 함께 숨김 파일을 포함한 모든 파일과 디렉토리 목록을 표시
total 2256
drwxr-xr-x 4 imnyang users 4096 May 6 23:37 .
drwx------ 75 imnyang users 4096 May 6 23:34 ..
-rw-r--r-- 1 imnyang users 1535520 Mar 30 21:35 111148905_p0_master1200.png
-rw-r--r-- 1 imnyang users 5230 Mar 8 03:12 1471583140605591756.webp
-rw-r--r-- 1 imnyang users 92013 Apr 14 21:48 9bd2e11ba13fef113c7b3ecb900bda78.png
drwxr-xr-x 2 imnyang users 4096 May 6 23:36 secret
-rw-r--r-- 1 imnyang users 654899 Apr 5 15:34 .spy.mizuki.jpg
drwxr-xr-x 2 imnyang users 4096 May 6 23:37 .super-secretfishcd#
cd 명령어는 디렉토리를 변경하는 명령어입니다.
[imnyang@ena:~/mizuki]$ cd secret # secret 디렉토리로 이동
[imnyang@ena:~/mizuki/secret]$ pwd # 현재 디렉토리의 절대 경로를 표시
/home/imnyang/mizuki/secretfishtouch#
touch 명령어는 빈 파일을 생성하거나 기존 파일의 수정 시간을 변경하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ touch newfile.txt # newfile.txt 파일을 생성
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
newfile.txtfish[imnyang@ena:~/mizuki/secret]$ ls -l
total 0
-rw-r--r-- 1 imnyang users 0 Apr 22 19:16 asdf.txt
-rw-r--r-- 1 imnyang users 0 May 6 23:39 newfile.txt
[imnyang@ena:~/mizuki/secret]$ touch asdf.txt
[imnyang@ena:~/mizuki/secret]$ ls -l
total 0
-rw-r--r-- 1 imnyang users 0 May 6 23:41 asdf.txt
-rw-r--r-- 1 imnyang users 0 May 6 23:39 newfile.txtfishmkdir#
mkdir 명령어는 새 디렉토리를 생성하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ mkdir newdir # newdir 디렉토리를 생성
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
newdir newfile.txt asdf.txtfishcp#
cp 명령어는 파일이나 디렉토리를 복사하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ cp newfile.txt copy.txt # newfile.txt 파일을 copy.txt로 복사
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
copy.txt newdir newfile.txt asdf.txtfish[imnyang@ena:~/mizuki/secret]$ cp -r newdir copydir # newdir 디렉토리를 copydir로 복사
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
copy.txt copydir newdir newfile.txt asdf.txtfishmv#
mv 명령어는 파일이나 디렉토리를 이동하거나 이름을 변경하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ mv copy.txt moved.txt # copy.txt 파일을 moved.txt로 이름 변경
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
copydir moved.txt newdir newfile.txt asdf.txtfish[imnyang@ena:~/mizuki/secret]$ mv newfile.txt ../ # newfile.txt 파일을 상위 디렉토리로 이동
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
copydir moved.txt newdir asdf.txt
[imnyang@ena:~/mizuki/secret]$ cd .. # 상위 디렉토리로 이동
[imnyang@ena:~/mizuki]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
111148905_p0_master1200.png 9bd2e11ba13fef113c7b3ecb900bda78.png secret
1471583140605591756.webp newfile.txtfishrm#
rm 명령어는 파일이나 디렉토리를 삭제하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
asdf.txt copydir moved.txt newdir
[imnyang@ena:~/mizuki/secret]$ rm moved.txt # moved.txt 파일을 삭제
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
asdf.txt copydir newdirfish[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
asdf.txt copydir newdir
[imnyang@ena:~/mizuki/secret]$ rm -r copydir/ # copydir 디렉토리를 삭제
[imnyang@ena:~/mizuki/secret]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
asdf.txt newdirfishcat#
cat 명령어는 파일 내용을 출력하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ cat asdf.txt
아키야마 미즈키는 웹 프로그래머입니다.fishpwd#
pwd 명령어는 현재 디렉토리의 절대 경로를 표시하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ pwd
/home/imnyang/mizuki/secretfishhead#
head 명령어는 파일의 처음 몇 줄을 출력하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ cat asdf.txt # 파일 내용을 출력
아키야마 미즈키는 웹 프로그래머입니다.
아키야마 미즈키는 감자튀김을 좋아합니다.
프로젝트 세카이 컬러풀 스테이지! feat.하츠네 미쿠의 등장인물. 언더그라운드 유닛 25시, 나이트 코드에서.의 멤버로, MV 제작을 담당하고 있다.
닉네임은 Amia다. 과거에 즐겨보던 미라 매직(미라클 매직 걸☆ 라라)이라는 애니메이션의 최애인 미아에서 따왔다.
주 담당은 MV 제작이며, 어렸을 때부터 귀여운 것을 좋아해서 콜라주 같은 걸 만들었다고 한다.
동영상을 만들게 된 것도 자신이 만든 콜라주가 움직이면 어떨까 하는 것이 계기가 되었다.
그러던 와중 요이사키 카나데가 투고한 음악을 듣고 꽂혀 그에 어울리는 MV를 만들어 투고했고, 해당 영상을 본 요이사키 카나데가 스카우트를 제안했다고 한다.
시노노메 에나 역시 비슷한 시기에 비슷한 이유로 서클 가입을 권유받게 되었다.
[imnyang@ena:~/mizuki/secret]$ head -n 2 asdf.txt # 파일의 처음 2줄을 출력
아키야마 미즈키는 웹 프로그래머입니다.
아키야마 미즈키는 감자튀김을 좋아합니다.fishtail#
tail 명령어는 파일의 마지막 몇 줄을 출력하는 명령어입니다.
[imnyang@ena:~/mizuki/secret]$ cat asdf.txt # 파일 내용을 출력
아키야마 미즈키는 웹 프로그래머입니다.
아키야마 미즈키는 감자튀김을 좋아합니다.
프로젝트 세카이 컬러풀 스테이지! feat.하츠네 미쿠의 등장인물. 언더그라운드 유닛 25시, 나이트 코드에서.의 멤버로, MV 제작을 담당하고 있다.
닉네임은 Amia다. 과거에 즐겨보던 미라 매직(미라클 매직 걸☆ 라라)이라는 애니메이션의 최애인 미아에서 따왔다.
주 담당은 MV 제작이며, 어렸을 때부터 귀여운 것을 좋아해서 콜라주 같은 걸 만들었다고 한다.
동영상을 만들게 된 것도 자신이 만든 콜라주가 움직이면 어떨까 하는 것이 계기가 되었다.
그러던 와중 요이사키 카나데가 투고한 음악을 듣고 꽂혀 그에 어울리는 MV를 만들어 투고했고, 해당 영상을 본 요이사키 카나데가 스카우트를 제안했다고 한다.
시노노메 에나 역시 비슷한 시기에 비슷한 이유로 서클 가입을 권유받게 되었다.
[imnyang@ena:~/mizuki/secret]$ tail -n 2 asdf.txt # 파일의 마지막 2줄을 출력
그러던 와중 요이사키 카나데가 투고한 음악을 듣고 꽂혀 그에 어울리는 MV를 만들어 투고했고, 해당 영상을 본 요이사키 카나데가 스카우트를 제안했다고 한다.
시노노메 에나 역시 비슷한 시기에 비슷한 이유로 서클 가입을 권유받게 되었다.fishless#
less 명령어는 파일 내용을 페이지 단위로 출력하는 명령어입니다
[imnyang@ena:~/mizuki/secret]$ less asdf.txt # 파일 내용을 페이지 단위로 출력
아키야마 미즈키는 웹 프로그래머입니다.
아키야마 미즈키는 감자튀김을 좋아합니다.
프로젝트 세카이 컬러풀 스테이지! feat.하츠네 미쿠의 등장인물. 언더그라운드 유닛 25시, 나이트 코드에
서.의 멤버로, MV 제작을 담당하고 있다.
닉네임은 Amia다. 과거에 즐겨보던 미라 매직(미라클 매직 걸☆ 라라)이라는 애니메이션의 최애인 미아에서
따왔다.
주 담당은 MV 제작이며, 어렸을 때부터 귀여운 것을 좋아해서 콜라주 같은 걸 만들었다고 한다.
동영상을 만들게 된 것도 자신이 만든 콜라주가 움직이면 어떨까 하는 것이 계기가 되었다.
그러던 와중 요이사키 카나데가 투고한 음악을 듣고 꽂혀 그에 어울리는 MV를 만들어 투고했고, 해당 영상
을 본 요이사키 카나데가 스카우트를 제안했다고 한다.
시노노메 에나 역시 비슷한 시기에 비슷한 이유로 서클 가입을 권유받게 되었다.
~
~
~
~
~
(END)fishfind#
find 명령어는 파일이나 디렉토리를 검색하는 명령어입니다.
다음과 같은 인자를 많이 사용합니다.
| 인자 | 설명 |
|---|---|
-name [파일명] | 파일 이름으로 검색합니다. (와일드카드 * 사용 가능) |
-type [타입] | 파일의 종류를 지정하여 검색합니다. (f: 일반 파일, d: 디렉토리, l: 심볼릭 링크) |
-user [사용자명] | 특정 소유자의 파일을 검색합니다. |
-size [용량] | 파일 크기를 기준으로 검색합니다. (+n: n보다 큰 파일, -n: n보다 작은 파일, k, M, G 단위 사용) |
-mtime [날짜] | 수정된 시간을 기준으로 검색합니다. (-n: n일 이내, +n: n일 이전) |
-perm [권한] | 특정 권한(예: 755)을 가진 파일을 검색합니다. |
-exec [명령어] {} \; | 검색된 결과에 대해 특정 명령어를 실행합니다. |
-empty | 빈 파일이나 빈 디렉토리를 검색합니다. |
-maxdepth [레벨] | 검색할 하위 디렉토리의 깊이를 제한합니다. |
[imnyang@ena:~/mizuki]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
111148905_p0_master1200.png 9bd2e11ba13fef113c7b3ecb900bda78.png secret
1471583140605591756.webp newfile.txt
[imnyang@ena:~/mizuki]$ find . -name "*.png" # 현재 디렉토리와 하위 디렉토리에서 .png 확장자를 가진 파일을 검색
./111148905_p0_master1200.png
./9bd2e11ba13fef113c7b3ecb900bda78.pngfish[imnyang@ena:~/mizuki]$ ls # 현재 디렉토리의 파일과 디렉토리 목록을 표시
111148905_p0_master1200.png 9bd2e11ba13fef113c7b3ecb900bda78.png secret
1471583140605591756.webp newfile.txt
[imnyang@ena:~/mizuki]$ find . -type d -name "secret" # 현재 디렉토리와 하위 디렉토리에서 이름이 secret인 디렉토리를 검색
./secretfishgrep#
grep 명령어는 출력된 값이나 파일에서 특정 패턴을 검색합니다.
다음과 같은 인자를 많이 사용합니다.
| 인자 | 설명 |
|---|---|
-i | 대소문자를 구분하지 않고 검색합니다. |
-r | 디렉토리 내의 모든 파일을 재귀적으로 검색합니다. |
-n | 일치하는 줄 번호를 함께 표시합니다. |
--color | 일치하는 문자열을 색상으로 표시합니다. |
[imnyang@ena:~/mizuki]$ grep -r 미즈키 # 현재 디렉토리와 하위 디렉토리에서 "미즈키"라는 문자열을 검색
secret/wow.txt:아키야마 미즈키는 시노노메 에나와 사이가 좋습니다.
secret/asdf.txt:아키야마 미즈키는 웹 프로그래머입니다.
secret/asdf.txt:아키야마 미즈키는 감자튀김을 좋아합니다.fish[imnyang@ena:~/mizuki]$ echo "농어촌마을 주거환경 개선 및 리모델링 촉진을 위한 특별법 ( 약칭: 농어촌리모델링법 )
제1장 총칙
제1조(목적) 이 법은 농어촌의
주거환경 및 노후ㆍ불량 주택을 계획적ㆍ효율적으로
개선하기 위하여 필요한 사항을
규정함으로써 친환경적이며 지속 가능한 살기 좋은
농어촌마을을 만드는 데 이바지함을
목적으로 한다." | grep "친환경적" # "친환경적"이 있는 줄만 출력
규정함으로써 친환경적이며 지속 가능한 살기 좋은fish[imnyang@ena:~/mizuki]$ echo "농어촌마을 주거환경 개선 및 리모델링 촉진을 위한 특별법 ( 약칭: 농어촌리모델링법 )
제1장 총칙
제1조(목적) 이 법은 농어촌의
주거환경 및 노후ㆍ불량 주택을 계획적ㆍ효율적으로
개선하기 위하여 필요한 사항을
규정함으로써 친환경적이며 지속 가능한 살기 좋은
농어촌마을을 만드는 데 이바지함을
목적으로 한다." | grep -n "친환경적" # "친환경적"이 있는 줄의 줄 번호와 함께 출력
6:규정함으로써 친환경적이며 지속 가능한 살기 좋은fish
chmod#
chmod 명령어를 사용하여 파일이나 디렉토리의 권한을 변경할 수 있습니다.
[imnyang@ena:~/mizuki]$ ls -l secret/asdf.txt # 권한 확인
-rwx------ 1 imnyang users 1033 May 6 23:47 secret/asdf.txt
[imnyang@ena:~/mizuki]$ sudo su miku # miku 사용자로 전환
[miku@ena:/home/imnyang/mizuki]$ cat secret/asdf.txt # 권한 확인
cat: secret/asdf.txt: Permission denied
[miku@ena:/home/imnyang/mizuki]$ exit # 나가기
exit
[imnyang@ena:~/mizuki]$ chmod 777 secret/asdf.txt # 권한 변경
[imnyang@ena:~/mizuki]$ ls -l secret/asdf.txt # 권한 확인
-rwxrwxrwx 1 imnyang users 1033 May 6 23:47 secret/asdf.txt
[imnyang@ena:~/mizuki]$ sudo su miku # miku 사용자로 전환
[miku@ena:/home/imnyang/mizuki]$ cat secret/asdf.txt # 파일 내용 확인
아키야마 미즈키는 웹 프로그래머입니다.
아키야마 미즈키는 감자튀김을 좋아합니다. 프로젝트 세카이 컬러풀 스테이지! feat.하츠네 미쿠의 등장인물. 언더그라운드 유닛 25시, 나이트 코드에서.의 멤버로, MV 제작을 담당하고 있다.
닉네임은 Amia다. 과거에 즐겨보던 미라 매직(미라클 매직 걸☆ 라라)이라는 애니메이션의 최애인 미아에서 따왔다.
주 담당은 MV 제작이며, 어렸을 때부터 귀여운 것을 좋아해서 콜라주 같은 걸 만들었다고 한다.
동영상을 만들게 된 것도 자신이 만든 콜라주가 움직이면 어떨까 하는 것이 계기가 되었다.
그러던 와중 요이사키 카나데가 투고한 음악을 듣고 꽂혀 그에 어울리는 MV를 만들어 투고했고, 해당 영상을 본 요이사키 카나데가 스카우트를 제안했다고 한다.
시노노메 에나 역시 비슷한 시기에 비슷한 이유로 서클 가입을 권유받게 되었다.fishchown#
chown 명령어를 사용하여 파일이나 디렉토리의 소유자를 변경할 수 있습니다.
[imnyang@ena:~/mizuki]$ ls -l secret/asdf.txt
-rw------- 1 imnyang users 1033 May 6 23:47 secret/asdf.txt
[imnyang@ena:~/mizuki]$ sudo chown miku secret/asdf.txt
[imnyang@ena:~/mizuki]$ ls -l secret/asdf.txt
-rw------- 1 miku users 1033 May 6 23:47 secret/asdf.txt
[imnyang@ena:~/mizuki]$ cat secret/asdf.txt
cat: secret/asdf.txt: Permission denied
[imnyang@ena:~/mizuki]$ sudo su miku
[miku@ena:~/mizuki]$ cat secret/asdf.txt | head -n 1
아키야마 미즈키는 웹 프로그래머입니다.fishchgrp#
chgrp 명령어를 사용하여 파일이나 디렉토리의 그룹을 변경할 수 있습니다.
[miku@ena:/home/imnyang/mizuki]$ id
uid=1001(miku) gid=100(users) groups=100(users),1000(hatsune)
[imnyang@ena:~/mizuki]$ id
uid=1000(imnyang) gid=100(users) groups=100(users),1(wheel),57(networkmanager),131(docker)
# =================== 권한 확인하기
[miku@ena:/home/imnyang/mizuki]$ ls -l secret/asdf.txt
-rw-r----- 1 miku hatsune 1033 May 6 23:47 secret/asdf.txt
[miku@ena:/home/imnyang/mizuki]$ cat secret/asdf.txt | head -n 1
아키야마 미즈키는 웹 프로그래머입니다.
[miku@ena:/home/imnyang/mizuki]$ exit
exit
# =================== 소유권만 바꾸기
[imnyang@ena:~/mizuki]$ sudo chown imnyang secret/asdf.txt
[imnyang@ena:~/mizuki]$ sudo su miku
[miku@ena:/home/imnyang/mizuki]$ ls -l secret/asdf.txt
-rw-r----- 1 imnyang hatsune 1033 May 6 23:47 secret/asdf.txt
[miku@ena:/home/imnyang/mizuki]$ cat secret/asdf.txt | head -n 1
아키야마 미즈키는 웹 프로그래머입니다.
[miku@ena:/home/imnyang/mizuki]$ exit
exit
# =================== 그룹도 바꾸기
[imnyang@ena:~/mizuki]$ sudo chgrp docker secret/asdf.txt
[imnyang@ena:~/mizuki]$ sudo su miku
[miku@ena:/home/imnyang/mizuki]$ ls -l secret/asdf.txt
-rw-r----- 1 imnyang docker 1033 May 6 23:47 secret/asdf.txt
[miku@ena:/home/imnyang/mizuki]$ cat secret/asdf.txt | head -n 1
cat: secret/asdf.txt: Permission deniedfishln#
ln 명령어를 사용하여 파일의 심볼링 링크나 하드 링크를 생성할 수 있습니다.
| 특징 | 심볼릭 링크 (Soft Link) | 하드 링크 (Hard Link) |
|---|---|---|
| 개념 | 원본의 경로를 담은 파일 (바로가기) | 원본과 동일한 Inode를 공유 |
| 디렉토리 링크 | Y | N |
| 다른 파티션 연결 | Y | N |
| 원본 삭제 시 | 링크 사용 불가 (Broken) | 데이터 유지됨 |
| 명령어 | ln -s [원본] [링크] | ln [원본] [링크] |
[imnyang@ena:~/mizuki]$ ln -s secret/asdf.txt link.txt
[imnyang@ena:~/mizuki]$ ls -l link.txt
lrwxrwxrwx 1 imnyang users 15 May 7 00:19 link.txt -> secret/asdf.txt
[imnyang@ena:~/mizuki]$ sha256sum secret/asdf.txt link.txt
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 secret/asdf.txt
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 link.txt
[imnyang@ena:~/mizuki]$ nvim secret/asdf.txt
[imnyang@ena:~/mizuki]$ sha256sum secret/asdf.txt link.txt
a585b19b38bce95072bb098ad3c3ca7f75dc293bed4d22c29596fe3c682fc11d secret/asdf.txt
a585b19b38bce95072bb098ad3c3ca7f75dc293bed4d22c29596fe3c682fc11d link.txt
[imnyang@ena:~/mizuki]$ mv secret/asdf.txt secret/missing
[imnyang@ena:~/mizuki]$ ls -l link.txt
lrwxrwxrwx 1 imnyang users 15 May 7 00:19 link.txt -> secret/asdf.txt
[imnyang@ena:~/mizuki]$ cat link.txt | head -n 1
cat: link.txt: No such file or directoryfish[imnyang@ena:~/mizuki]$ ln secret/asdf.txt link.txt
[imnyang@ena:~/mizuki]$ ls -l link.txt
-rw-r----- 2 imnyang docker 1054 May 7 00:20 link.txt
[imnyang@ena:~/mizuki]$ sha256sum secret/asdf.txt link.txt
a585b19b38bce95072bb098ad3c3ca7f75dc293bed4d22c29596fe3c682fc11d secret/asdf.txt
a585b19b38bce95072bb098ad3c3ca7f75dc293bed4d22c29596fe3c682fc11d link.txt
[imnyang@ena:~/mizuki]$ nvim secret/asdf.txt
[imnyang@ena:~/mizuki]$ sha256sum secret/asdf.txt link.txt
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 secret/asdf.txt
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 link.txt
[imnyang@ena:~/mizuki]$ mv secret/asdf.txt secret/missing
[imnyang@ena:~/mizuki]$ ls -l link.txt
-rw-r----- 2 imnyang docker 1033 May 7 00:26 link.txt
[imnyang@ena:~/mizuki]$ cat link.txt | head -n 1
아키야마 미즈키는 웹 프로그래머입니다.
[imnyang@ena:~/mizuki]$ cat secret/missing | head -n 1
아키야마 미즈키는 웹 프로그래머입니다.
[imnyang@ena:~/mizuki]$ sha256sum secret/missing link.txt
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 secret/missing
7bee1af1fbad8618283f69e4f2672adcc069757e77fe6887d10affc691eb92f9 link.txt
[imnyang@ena:~/mizuki]$ nvim secret/missing
[imnyang@ena:~/mizuki]$ sha256sum secret/missing link.txt
cd4ba56a4b4aca918d8e09106bdfaeca25d2673d6fdf92d7b8b0dc3402d4a74c secret/missing
cd4ba56a4b4aca918d8e09106bdfaeca25d2673d6fdf92d7b8b0dc3402d4a74c link.txtfish
