리눅스 기초 · 파일과 디렉터리 · 실습
파일과 디렉터리 다루기
목표
파일과 디렉터리를 만들고, 옮기고, 링크로 연결하고, 묶어서 백업하는 흐름을 손에 익힙니다. 특히 하드 링크와 심볼릭 링크가 무엇이 다른지 inode 번호로 직접 확인합니다.
왜 중요한가
리눅스에서 파일 이름은 실체가 아니라 실체를 가리키는 참조입니다. 디렉터리는 (이름, inode 번호) 짝의 목록일 뿐이고, 데이터의 진짜 주인은 inode 입니다. 이 구조를 알면 "왜 mv 는 1GB 파일도 즉시 끝나는가", "왜 rm 을 해도 용량이 안 줄어드는가", "왜 하드 링크는 다른 디스크로 못 거는가"가 한 번에 설명됩니다. 반대로 이 구조를 모르면 그 셋을 각각 별개의 이상 현상으로 외우게 됩니다.
단계
1. /root/work 디렉터리를 만드세요.
2. /root/work/hello.txt 를 만들고 첫 줄에 hello labhub 를 넣으세요.
3. /etc/hostname 을 /root/work/hostname 으로 복사하세요. 내용이 원본과 완전히 같아야 합니다.
4. /root/work/logs/2026/08 디렉터리를 한 번에 만드세요.
5. /root/work/logs/2026/08 아래에 app1.log 부터 app5.log 까지 5개를 만들고, 그 파일들의 이름만(경로 제외) 한 줄에 하나씩 담은 /root/work/loglist.txt 를 만드세요.
6. hello.txt 를 가리키는 하드 링크 /root/work/hello.hard 와 심볼릭 링크 /root/work/hello.link 를 각각 만드세요.
7. /root/work/draft.txt 를 만들어 draft 한 줄을 넣은 뒤, /root/work/logs/2026/08/draft.txt 로 이동하세요.
8. /root/work/logs 디렉터리 전체를 /root/work/backup.tar.gz 로 압축해 묶으세요.
참고
stat -c '%i %h %s' 파일로 inode 번호 / 링크 수 / 크기를 한 번에 볼 수 있습니다.ls -li의 첫 번째 열이 inode 번호입니다. 하드 링크끼리는 이 값이 같습니다.- 흔한 실수 1: 5번에서
find의 결과를 그대로 저장하면./logs/2026/08/app1.log같은 경로가 들어갑니다. 필요한 것은 파일 이름뿐입니다. - 흔한 실수 2: 7번에서
cp를 쓰면 원본이 남아 실패합니다. 이동은 데이터를 복사하지 않고 디렉터리 엔트리만 고칩니다.
단계 8개
- 작업 디렉터리 만들기
- 첫 파일 만들기
- 시스템 파일 복사하기
- 중첩 디렉터리 한 번에 만들기
- 로그 파일 목록 뽑기
- 하드 링크와 심볼릭 링크
- 파일 이동하기
- 로그 디렉터리 백업하기