티스토리 뷰
Linux에서는 copy -a
옵션으로 파일의 metadata까지 복사가 가능합니다.
1. 파일의 Metadata
파일의 metadata란?
: 파일의 권한, 소유자 정보, 크기, MAC time 등의 상세 정보
MAC time
M - Modification time 수정 시간
A - Access time 접근 시간
C - Change time (속성, 권한) 변경 시간
*** stat [파일 이름]
으로 확인 가능
따라서 metadata에서의 시간은 파일을 생성한 시간이 아니라 "마지막으로 수정한 시간 " 입니다.
또한 모든 파일에는 inode 번호라는 데이터가 존재합니다.
inode number
Linux에서 파일과 디렉토리를 관리하는 고유한 번호로 data의 위치를 가리킴ls -il
로 inode 확인 가능
2. Link
Linux에서는 파일 자체를 복사하지 않고도 링크를 걸어 파일을 가리킬 수 있습니다.
링크를 이용하면 필요한 library를 불러다가 사용할 수 있으므로 시간을 훨씬 단축할 수 있습니다.
링크는 다시 hard link와 symbolic link로 나뉘게 됩니다.
2.1 Hard Link
ln [원본 파일] [대상 파일]
하드 링크는 inode number가 동일한 완벽하게 같은 파일을 생성합니다. (inode number 공유)
그러나 동일한 partition / 동일한 file system을 사용해야 하며 디렉토리는 link가 불가능하다는 제약이 있습니다.
2.2 Symbolic Link
ln -s [원본 파일] [대상 파일]
심볼릭 링크는 Windows의 바로가기 아이콘과 유사합니다.
대상 파일이 원본 파일의 이름을 참조하는 구조이며, 따라서 원본 파일 이름이 삭제될 경우 더 이상 파일을 참조할 수 없습니다.
b.txt는 a.txt를 참조하지만 서로의 inode 번호도 다르고, a.txt가 삭제 될 경우 더 이상 링크로 파일을 참조할 수 없습니다.
내용을 정리하면 위 그림과 같습니다. (inode는 원본 data의 위치를 가리킴)
하드 링크와 심볼릭 링크의 개념을 잘 이해했는지, 다음의 경우를 통해 살펴보겠습니다.
case 1. 원본 파일 내용 변경
⇒ hard link, symbolic link 파일 모두 변경
case 2. 원본 파일 삭제 = 원본 파일 이름 삭제
⇒ hard link : inode를 통해 원본 파일이 저장된 주소를 찾아내므로 지워지지 않고 유지
⇒ symbolic link : 링크 참조 불가
case 3. 원본 파일 삭제 후 같은 이름의 파일 생성
⇒ hard link : inode가 달라지므로 처음 생성한 원본 파일로 유지
⇒ symbolic link : 파일 이름만 참조하므로 새로운 a.txt를 만들어도 그대로 연결
*** 파일을 삭제해도 모든 data가 완전히 사라지지 않기 때문에 원본 파일이 삭제되어도 hard link로의 접근이 가능합니다.따라서 파일이 삭제되었더라도 inode 기반의 metadata를 통해 원본의 복구가 가능합니다. (포렌식에서 inode 블록이 아주 중요한 이유!)
*** 모든 data까지 완전히 지우고 싶다면 별도의 wiping 프로그램을 이용해야 합니다.
'Linux' 카테고리의 다른 글
[Ubuntu] 우분투 20.04 LTS 화면 freezing 문제 해결 (0) | 2023.04.06 |
---|---|
[Linux] vi 편집기 (명령 모드, 입력 모드, alias 등록하기) (0) | 2023.03.23 |
[Linux] 기본 명령어(경로 이동, root directory, 파일 생성) (0) | 2023.03.23 |
[Linux] 구성 환경: Network Setting (0) | 2023.03.13 |
[Linux] 구성 환경: VMWare + Rocky9 Setting (0) | 2023.03.12 |
- Total
- Today
- Yesterday
- Git
- rocky9
- redhat
- Route53
- vsphere
- RECA
- Google Cloud DNS
- github
- ycampus
- kubectl
- 클라우드 DNS 서비스
- AWS
- Window Server Manager
- VM Tools
- IAM
- Azure DNS
- Ansible
- VPC
- Windows Server
- Vmware
- k8s
- Local Zones
- 에티버스러닝
- EKS
- Route53 비용 정책
- Linux
- IAC
- aws cli
- Docker
- kubernetes
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |