i - node
디렉토리는 파일에 대한 i - node 포인터, 즉 i - number를 유지한다.
drwxr-xr-x 2 202121165 students 4096 4월 5 15:48 public_html
// 접근권한 링크 수 소유자 그룹 파일 크기 접근시각 수정 시각 파일 주소
ls -i
66192406 public_html
link
ln 파일이름 링크이름
Symbolic link
ln -s 구-파일 신-파일, i - number를 서로 공유하지 않는다.(경로가 들어있다.)
lrwxrwxrwx 1 jhkim faculty 4 3월 20 20:07 bin -> /bin
// l = 심볼릭 링크를 의미. /bin = 심볼릭 링크된 경로, i - number은 서로 다르다.
Hard link
i - node를 공유한다.(동일 i - number 사용)
Device 파일
/dev/pts/597는 특정 가상 터미널 장치에 데이터를 출력하는 파일이다.
/dev/tty는 현재 프로세스의 터미널과 상호작용하는 데 사용되는 특수 파일이다.
터미널 입출력은 디바이스에 대한 입출력이므로 표준 입출력과는 다르다.
mount
하나의 파일 시스템은 여러 개의 장치들로 구성될 수 있다.
/
/bin /dev /etc /home /tmp
/mike /paul /mary
실습1
echo Hello > file1
ln file1 file2 // file2는 새로 만드는 파일 이름이다.
ls -li
-rw-r--r-- 2 202121165 students 6 5월 26 16:50 file1
-rw-r--r-- 2 202121165 students 6 5월 26 16:50 file2 // 연결 수는 2개, i-number은 66197287로 동일하다.
file2의 내용을 수정하면 cat file1으로 봐도 내용이 같다. 모든 접근권한을 제거하면 file1, file2 둘 다 접근권한이 제거되어 있다.
실습2
echo Hello > file1
ln -s file2 file1 // 만드는 파일명(file2) 연결할 파일(file1)
ls -l
-rw-r--r-- 1 202121165 students 6 5월 28 18:18 file1
lrwxrwxrwx 1 202121165 students 5 5월 28 18:19 file2 -> file1 // file1을 참조한다.
ls -i
66197287 file1 66200079 file2 // i-number도 다르다.
chmod -rwx file1 // 사용자의 모든 권한 제거
cat file2
cat: file2: 허가 거부 // file1을 참조하기 때문에 file2도 허가가 거부된다.
실습3
ln -s /tmp/unix2023/ex1 mx1 // 홈 디렉토리에서 명령을 실행하면 ~가 없어도 명령이 수행된다.
ln -s /tmp/unix2023/ex2 mx2
ln -s /tmp/unix2023/ex3 mx3
./mx1 mx2 mx3
Hello, this is ex1 // mx1은 ex1을 참조하는데, students그룹에서는 실행가능하다.
ex2, ex3은 실행 권한이 없어서 실행이 불가능하다.
ln -s /dev/tty mytty
echo Hello > mytty // Hello가 출력된다. /dev/tty는 터미널 장치여서 echo Hello를 한 것과 동일하다.
* 위의 device파일 설명 부분에 자세한 설명 존재.
'UNIX 시스템' 카테고리의 다른 글
File archive / Compress - 11주차 수업 - 1 (0) | 2023.05.30 |
---|---|
find - 10주차 수업 - 2 (0) | 2023.05.30 |
cut - 10주차 수업 - 1 (0) | 2023.05.29 |
Filter - 9주차 수업 - 1 (0) | 2023.05.28 |
UID - 8주차 수업 - 1 (0) | 2023.05.26 |