[Ubuntu] 03. 파일 관리
파일 정보
touch
명령어를 이용하여 빈 파일을 만들고, ls -l
명령어로 파일 정보를 봐보자
-rw-r--r-- 1 root root 0 Nov 6 11:36 example.txt
각각의 정보들을 알아보자
앞의 1자리 -
는 파일의 유형을 나타낸다.
디렉토리의 경우 d
로 나타내고, 링크(바로가기)의 경우 l
, 장치(디바이스)의 경우 b
또는 c
로 나타난다.
그 다음 9자리는 파일의 허가권을 나타낸다.
앞에서부터 3개씩 끊어서 인식하면 되는데, 3자리는 각각 r, w, x로 보여진다.
이는 read, write, execute의 약자로 rw-의 경우 읽거나 쓰기는 가능하나 실행은 할수 없다는 뜻이다.
맨 앞 3자리는 소유자의 파일 권한, 2번째 3자리는 그룹의 파일 권한, 3번째 3자리는 그 외 사용자의 파일 권한이다.
즉, 위의 example.txt
의 경우, 소유자는 읽고 쓰기, 그룹은 읽기만, 그 외 사용자도 읽기만 가능하다.
이 허가권은 2진수로 나타내서 표현하는데, rw-의 경우 4+2=6, r–의 경우 4=4가 된다.
rwxr-xr–의 경우, 4+2+1=7, 4+1=5, 4=4로 754로 나타낸다.
파일의 허가권을 변경하는 명령어로 chmod
가 있다.
예를 들어 위의 example.txt는 644 상태인데, chmod 777 example.txt
를 하면
-rwxrwxrwx 1 root root 0 Nov 6 11:36 example.txt
이렇게 변하게 된다
그 다음 두 root는 파일의 소유권을 나타내는데, 각각 파일의 소유자와 파일 소유 그룹을 나타낸다.
파일의 소유자를 변경하는 명령어로 chown
와 chgrp
이 있다.
chown ubuntu example.txt
의 경우, 소유자를 ubuntu로 변경한다.
chown ubuntu.ubuntu example.txt
의 경우, 소유자만 ubuntu로 변경하는 것이 아닌 소유 그룹도 ubuntu로 변경한다.
chgrp ubuntu example.txt
의 경우, 소유 그룹을 ubuntu로 변경한다.
그 뒤의 0은 파일의 크기를 나타낸다.
그 뒤의 Nov 6 11:36은 파일의 최종 수정 시간을 나타낸다.
링크
링크의 종류에는 하드 링크와 소프트 링크가 있다.
inode
링크를 하기전에 먼저 inode에 대해 알아야 한다.
inode는 리눅스 파일 시스템의 자료구조로서 파일이나 디렉토리의 정보를 담고 있다.
이 inode는 해당 파일의 소유권, 허가권, 파일 종류 등의 정보와 실제 데이터의 주소도 담고 있다.
하드링크와 소프트링크
원본 파일이 inode1을 사용한다고 하자.
하드 링크를 생성할 경우, 하드 링크 파일만 생성되고 같은 inode1을 사용한다.
하드 링크는 ln 링크대상 링크파일이름
으로 생성 가능하다. (ex ln basefile hardlink
)
소프트 링크를 생성할 경우, 새로운 inode2를 만들고, 데이터는 원본 파일에 연결만 시켜주는 주소를 가지고 있다.
소프트 링크가 진짜 포인터라고 생각하면 편하다.
소프트 링크는 ln -s 링크대상 링크파일이름
으로 생성 가능하다. (ex ln -s basefile softlink
)
실습
- root 사용자로 접속하여
/root/linkpractice
를 만들고, 그 안에basefile
이라는 파일을 만들어주자. - vi 에디터를 이용하여
basefile
에 아무거나 입력해주고 저장해주자. basefile
에 대해hardlink
,softlink
이름의 하드링크 소프트링크를 만들어주자.ls -il
을 통해 inode 번호를 포함한 디렉토리 요소들을 출력해보자hardlink
와softlink
의 파일의 내용을 확인해보자.basefile
의 위치를../
으로 이동시키고ls -il
을 확인하고,hardlink
와softlink
의 파일 내용을 확인해보자.basefile
을 다시 원래 위치로 이동시키고hardlink
와softlink
의 파일 내용을 확인해보자.
Comments