디렉터리와 파일 사용
디렉터리와 파일 사용
1. 리눅스 파일 시스템
1.1 파일 시스템의 구조와 종류
리눅스의 디스크 기반 파일 시스템
- ext (Extended File System)
- xfs (eXtended File System)
- 기타 파일 시스템 (DVD, USB, 윈도우 등 타 시스템과의 호환, etc.)
가상 파일 시스템
- swap, tmpfs, proc, ramfs, rootfs
2. 파일의 종류와 디렉터리 계층 구조
2.1 파일의 종류
- 일반 파일, 디렉터리, 심볼릭 링크, 장치 파일
2.2 디렉터리의 계층 구조
루트 디렉터리와 서브 디렉터리
- 루트 디렉터리 (
/
)에는 아래와 같은 서브 디렉터리가 있음 - boot, dev, etc, home, lib, mnt, opt, proc, root, sbin, srv, sys, tmp, usr, var, etc.
- 작업 디렉터리 : working directory
- 홈 디렉터리 : home directory (
~
)
절대 경로명과 상대 경로명
- 절대 경로명 : 루트 디렉터리부터 시작하는 경로명
- 상대 경로명 : 현재 작업 디렉터리부터 시작하는 경로명
3. 디렉터리 관련 명령
3.1 pwd
- 현재 작업 디렉터리의 절대 경로명을 출력
3.2 cd
- 작업 디렉터리를 변경
3.3 ls
디렉터리 내용을 출력
- 숨김파일 확인 :
-a
옵션- .으로 시작하는 파일을 포함하여 모든 파일을 출력
- 상세한 정보 출력하기 :
-l
옵션- 파일의 상세한 정보 출력
필드 번호 | 필드 값 | 의미 |
---|---|---|
1 | d | 파일의 속성 (d: 디렉터리, -: 일반 파일, l: 심볼릭 링크) |
2 | drwxrwxrwx | 파일에 대한 접근 권한 (r: 읽기, w: 쓰기, x: 실행) |
3 | 2 | 하드 링크의 개수 |
4 | user1 | 파일의 소유자 |
5 | user1 | 파일의 소유 그룹 |
6 | 4096 | 파일의 크기 (바이트) |
7 | Jul 27 14:32 | 파일의 수정 시간 |
8 | test.txt | 파일의 이름 |
- 파일의 종류 표시하기 :
-F
옵션*
: 실행파일,/
: 디렉터리,@
: 심볼릭 링크
- 디렉터리의 자체 정보 확인하기 :
-d
옵션 - 하위 디렉터리 포함하여 출력하기 :
-R
옵션
3.4 디렉터리 생성 : mkdir
- 중간 디렉터리를 자동으로 만들기 :
-p
옵션
3.5 디렉터리 삭제 : rmdir
- 디렉터리가 비어있어야 삭제 가능
- 지정한 디렉터리를 삭제하고, 부모 디렉터리를 확인하여 비어있으면 삭제 :
-p
옵션
4. 파일 관련 명령
4.1 파일 내용 출력
- 파일 내용을 연속으로 출력하기:
cat
cat
명령은 텍스트 파일의 내용만 출력할 수 있으며, 파일의 내용 전체를 출력하는 명령어-n
옵션: 파일의 내용을 줄 번호와 함께 출력
- 파일 내용을 화면 단위로 출력하기:
more
Space Bar
: 한 화면씩 내용 출력Enter
: 한 줄씩 내용 출력/
: 검색q
: 종료
- 파일 내용을 화면 단위로 출력하기:
less
- 파일 내용의 앞부분과 뒷부분 출력하기:
head
,tail
-숫자
: 화면에 출력할 행의 수를 지정 (기본값: 10)-f
: 파일의 내용을 주기적으로 반복 출력
4.2 파일 복사: cp
- 파일이나 디렉터리를 복사할 때는
cp
명령을 사용한다. - 형식:
cp [옵션] 파일1|디렉터리1 파일2|디렉터리2
- 옵션
-i
: 파일2가 이미 존재하면 덮어쓸 것인지 물어봄-r
: 디렉터리를 복사할 때 사용
4.3 파일 이동과 파일명 변경: mv
- 파일 또는 디렉터리를 이동하거나 이름을 바꾼다.
- 형식:
mv [옵션] 파일1|디렉터리1 파일2|디렉터리2
- 옵션
-i
: 파일2(디렉터리2)가 존재하면 덮어쓸 것인지 물어본다.
4.4 파일 삭제: rm
- 파일을 삭제하는 명령은
rm
이다.-r
옵션을 지정하면 디렉터리도 삭제할 수 있다. - 형식:
rm [옵션] 파일|디렉터리
- 옵션
-i
: 파일을 정말 삭제할 것인지 확인한다.-r
: 디렉터리를 삭제한다.
4.5 파일 링크
- 하드 링크 만들기: ln
- 형식:
ln [옵션] 원본파일 링크파일
- 옵션
-s
: 심볼릭 링크 파일을 생성한다.
- 사용예
ln test1 hdtest1
ln -s test1 sbtest1
- 형식:
- 복사와의 차이: 복사는 완전히 독립적인 파일을 생성하며, 하드 링크는 동일한 파일에 다른 이름을 붙이는 것에 불과하다. 반면, 원본파일과 하드링크파일은 inode가 같으며 편집 내용이 원본파일과 하드링크파일에 모두 반영된다.
- 하드 링크와 심볼릭 링크의 차이
특징 | 하드 링크 | 심볼릭 링크 |
---|---|---|
파일 시스템 | 같은 파일 시스템 내에서만 생성 가능 | 다른 파일 시스템에도 생성 가능 |
디렉터리 생성 | 디렉터리에 생성 불가 | 디렉터리에도 생성 가능 |
파일 종류 표시 | - 으로 표시 | l 로 표시 |
하드 링크 개수 | 하드 링크 개수 증가 | 하드 링크 개수는 1 |
inode 번호 | 원본 파일과 동일 | 원본 파일과 다름 |
파일 확인 방법 | ls -l 로 확인 시 원본 파일의 이름 표시 없음 | ls -l 로 확인 시 원본 파일의 이름 표시 |
This post is licensed under CC BY 4.0 by the author.