[System] touch, find, Hard link, Symbolic link, inode, stat

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

touch

파일의 크기가 0인 빈 파일 생성

파일이 이미 존재하면 파일의 Modify time 변경

    >-t : 지정한 시간으로 변경

 


find

파일 또는 디렉터리 검색

'find 경로 조건 아큐먼트 액션' 형태로 사용

ex1) 전체 디렉터리에서 이름이 file인 것을 찾아서 삭제

find / -name file -exec rm -rf {}\;

ex2) 현재 디렉터리에서 링크 파일을 검색

find ./ -type l

ex3) 전체 디렉터리에서 일반 권한은 전부 0이고 특수권한 Set-UID만 있는 것을 검색 (권한이 정확하게 4000)

find / -perm 4000

ex4) 전체 디렉터리에서 일반 권한은 상관없이 특수권한 Set-UID이 있는 것을 검색

find / -perm -4000

 


Hard link

파일의 inode를 직접 가리키는 것

직접 주소, 직접 링크

원본 파일과 동일한 inode 번호를 공유

원본 파일을 수정하면 동일하게 내용이 수정됨

원본 파일을 삭제해도 하드링크 파일은 유지됨

삭제되었던 파일과 같은 이름으로 새 파일이 만들어져도 하드링크 파일 내용은 변함없음

ex) aaa의 하드링크 파일 aaa_hl 생성

ln aaa aaa_hl

 


Symbolic link

파일 시스템 상의 파일 경로를 가리키는 것

간접 주소, 간접 링크

원본 파일과 다른 inode 번호를 가짐

원본 파일을 수정하면 동일하게 내용이 수정됨

원본 파일을 삭제하면 심볼릭링크 파일은 내용을 찾을 수 없음 (링크 깨짐=Broken Link)

삭제되었던 파일과 같은 이름으로 새 파일이 만들어지면 심볼릭링크 파일은 새 파일로 연결됨

 


기능 하드링크 심볼릭링크
파일 ID (inode) 원본과 동일 별도의 inode 할당
파일 삭제 시 내용 유지 내용 깨짐 (확인 불가)
사용 예시 파일을 여러 개의 다른 이름으로 유지
원본 파일이 삭제되어도 내용 유지
동일한 파일을 여러 위치에 공유
다른 파일 시스템에서 연결
디렉터리 링크 생성 (바로가기)
동일한 파일을 여러 위치에 공유

하드 링크 : 하드디스크 내 파일 데이터 (inode) 공유

심볼릭 링크 : 파일 시스템 내 파일 경로 공유

 


inode

파일의 메타 데이터를 저장하는 데이터 구조

각 파일은 고유한 inode를 가짐

아이노드 확인 명령어 : stat

아이노드 번호 포함 파일 리스트 상세 확인 명령어 : ls -il

목차와 비슷한 개념

파일 시스템에서 파일을 삭제하면 하드디스트에 저장된 내용이 삭제되는 것이 아니라 아이노드가 삭제되는 것

    >목차를 삭제했다고 문서의 내용도 삭제되는 것은 아님

포렌식 : 아이노드 정보를 이용해서 삭제된 파일 복구

 


stat

파일의 inode 확인

inode 번호 ≠ inode 주소

타임스탬프 확인용으로 많이 사용됨

Access : 파일 접근 시간, 파일을 생성/변경한 뒤 처음 읽은 시간

Modify : 파일 내용이 수정된 시간, touch로 시간 변경 가능

Change : 파일의 속성(권한, 소유자 등)이 변경된 시간

Birth : 파일 생성 시간