바닥코딩
리눅스 명령어 - 파일 시스템 본문
이번 포스트에서는 파일 시스템 관리를 위한 명령어에 대해 다루어 보겠습니다.
cd
지정한 디렉토리로 이동합니다.
옵션
. | 현재 위치로 이동 |
.. | 부모 디렉토리 이동 |
~ | 홈 디렉토리 이동 |
- | 이전 디렉토리 이동 |
cp
파일 및 디렉토리극 복사합니다.
옵션
-f | 같은 이름의 파일이 있으면 확인하지 않고 덮어쓰기 |
-i | 같은 이름의 파일이 있으면 확인하고 덮어쓰기 |
-R | 디렉토리 하위 파일 모두 복사 |
dd
블록 단위로 데이터를 복사하거나 변환
옵션
if | 입력 파일을 지정 |
of | 출력 파일을 지정 |
bs | 블록 크기를 지정 |
count | 복사할 블록의 수를 지정 |
seek | 출력 파일의 시작 위치를 지정 |
skip | 입력 파일의 시작 위치를 지정 |
status | 진행 상황을 출력할지 여부를 지정 |
df
파일시스템의 디스크 사용량을 표시
옵션
-a | 모든 파일시스템을 표시 |
-h | 사람이 읽을 수 있는 형태로 용량을 변환하여 표시 |
-T | 파일시스템의 타입을 표시 |
df -T
-T 옵션을 주면 파일 시스템의 타입을 함께 조회할 수 있습니다. 해당 명령어를 통해 파일 시스템의 Type또한 같이 조회 할 수 있는데 각 파일 시스템의 타입에 대한 내용은 아래와 같습니다.
파일 시스템의 종류
xfs | xfs는 크기 변경이 자유롭고, 고성능의 파일 시스템이며 16엑사바이트까지 지원한다. 파일당 8엑사바이트를 지원하고, 디렉토리당 수천만 개의 파일을 포함할 수 있다. 메타데이터 저널링을 지원하고 빠른 복구를 제공하며 xfs 파일 시스템은 마운트 중에도 단편화, 크기 변경이 가능하다. 기본적으로 선택을 추천한다. 파티션 최대 지원크기는 500TB |
ext4 | ext4 파일 시스템은 ext3 파일 시스템에 기초하여 여러사항이 개선되었다. 이러한 개선사항에는 대용량 파일 시스템 및 대용량 파일 지원, 디스크 공간의 빠르고 효과적인 할당, 디렉토리에 있는 하위 디렉토리 수 제한 없으며 빠른 파일 시스템 확인 및 보다 강력한 저널링 기능이 포함된다. |
ext3 | ext3 파일시스템은 ext2 파일 시스템을 기반으로 하지만, 한가지 장점을 가지고 있습니다 – 저널링입니다. 저널링 파일시스템을 사용하면, 파일 시스템이 충돌한 다음에 파일시스템 복구를 위해 소요되는 시간이 적게 걸립니다. 이는 충돌이 발생할 때 마다 fsck 유틸리티를 실행하여 파일 시스템이 메타데이터의 일관성을 검사할 필요가 없기 때문입니다. |
ext2 | ext2 파일 시스템은 일반 파일, 디렉토리, 심볼릭 링크 등을 포함하여 표준 Unix 파일 유형을 지원합니다. 이 파일 시스템은 255 자까지 허용하는 긴 파일 이름을 부여할 수 있는 기능을 제공합니다. |
vfat | VFAT 파일 시스템은 Linux 파일 시스템으로서 FAT 파일 시스템 상의 Microsoft Windows 긴 파일명과 호환 가능합니다. |
swap | 스왑 파티션은 가상 메모리를 지원하는데 사용됩니다. 즉, 시스템이 처리하는 데이터를 저장할 RAM이 충분하지 않을 때 스왑 파티션에 데이터가 기록됩니다. |
BIOS 부트 | BIOS 시스템에서 GPT (GUID partition table)로 장치를 부팅하는데 필요한 작은 파티션입니다. |
EFI 시스템 파티션 | UEFI 시스템에서 GPT (GUID partition table)로 장치를 부팅하는데 필요한 작은 파티션입니다. |
du
파일과 디렉토리의 사용량을 표시
옵션
-b | 바이트 단위로 표시 |
-k | 킬로바이트(KB) 단위로 표시 |
-m | 메가바이트(MB) 단위로 표시 |
-s | 디스크 사용량의 합계를 표시 |
-h | 사람이 보기 편한 형태로 표시 |
find
파일을 검색할 때 사용합니다.
옵션
-name | 검색할 이름을 지정 [*] 사용가능 |
-exec | 찾은 파일을 이용해서 다른 명령을 실행해야 할 때 사용 |
-mtime | 수정시간을 이용하여 검색 |
-type | 찾는 파일의 타입을 지정 |
type 옵션
b | 블록형 특수 파일 |
c | 캐릭터형 특수 파일 |
d | 디렉토리 |
f | 일반 파일 |
l | 심볼릭 링크 |
p | 파이프 |
s | 소켓 |
find를 사용하는 예제는 아래와 같습니다.
# txt로 끝나는 파일 검색
find ./ -name "*.txt"
# logs 폴더 아래에서 txt로 끝나는 파일 검색
find ./logs -name "*.txt"
# 현재 폴더에서 com으로 시작하는 파일(f)만 검색
find ./ -name "com*" -type f
# logs 폴더 아래에서 log로 끝나는 파일을 찾이서 log.tar.gz 으로 압축
find ./logs -name "*.log" -exec tar -czf "./logs/log.tar.gz" {} \;
# 현재 폴더 아래 jar 파일을 target_dir 디렉토리로 복사
find ./ -name "*.jar" -exec cp {} ./target_dir/ \;
# logs 폴더 아래에서 20190101이 있는 파일을 찾아서 삭제(rm)
find ./logs/ -name "*20190101*" -exec rm -rf {} \;
# logs 폴더 아래에서 20190101이 있는 파일을 찾아서 삭제하는데, tar.gz 으로 끝나는 파일은 제외
find ./logs/ -name "*20190101*" -not -name "*.tar.gz" -exec rm -rf {} \;
# logs 폴더 아래에서 log로 끝나는 파일이면서, 일주일동안 수정이 없던 파일을 삭제
find ./logs/ -name "*.log" -mtime +6 -delete
hdparm
디스크를 읽는 속도를 측정하거나, 디스크 옵션을 확인할 떄 사용
옵션
-t | 버퍼 없이 읽기 속도 측정 |
-T | 버퍼를 이용한 읽기 속도 측정 |
ln
파일, 디렉토리에 대한 링크를 생성할 때 사용하며 -s 옵션을 이용하면 심볼링 링크를 생성하고, 사용하지 않으면 하드링크를 생성합니다.
심볼링 링크는 윈도우의 바로가기로 생각할 수 있습니다. 윈도우의 바로가기 처럼 원본파일을 삭제하면 심볼링 링크는 동작하지 않습니다.
반면 하드링크는 같은 파일을 하나더 생성하는거와 같이 연결 되어 있습니다 원본을 수정하면 파일도 함께 수정됩니다.
ls
파일 엔트리 정보를 표시합니다.
옵션
-a | 경로안에 모든 파일 나열(숨김파일 포함) |
-l | 파일 나열시 자세히 출력 |
-R | 위치한 디렉토리 하부 디렉토리 파일까지 출력 |
-h | 파일크기를 해석하기 편하게 출력 |
-r | 출력 결과를 내림차순으로 정렬 |
-t | 출력 결과를 파일이 수정된 시간을 기준으로 정렬 |
lsof
lsof(list open files)의 약자로 열려있는 모든 파일을 확인합니다.
옵션
i | ip확인 |
n | 호스트 이름 확인 |
P | 포트 이름 확인 |
mkdir
디렉토리를 생성합니다.
옵션
-p | 지정된 경로가 존재하지 않으면 모두 생성 |
# par1 디렉토리를 생성하고, 하위에 dir1을 생성합니다.
$ mkdir -p par1/dir1
mkfs
하드디스크를 포맷할 때 사용합니다.
옵션
-t | 타입을 지정 |
# /dev/vda를 ext4 형식으로 포맷합니다.
$ mkfs -t ext4 /dev/vda
# /dev/vdb를 xfs 형식으로 포맷합니다.
$ mkfs -t xfs /dev/vdb
mv
파일 디렉토리를 이동할 때 사용하며, 이름을 변경하는데도 사용됩니다.
옵션
-f | 같은 이름의 파일이 있으면 확인하지 않고 덮어씀 |
-i | 같은 이름의 파일이 있으면 확인하고 덮어 |
rm
파일, 디렉토리를 삭제합니다
옵션
-f | 파일이 없는 경우에도 오류를 표시하지 않습니다(강제 삭제) |
-r | 디렉토리를 삭제합니다. |
'네트워크 & 리눅스 > 리눅스' 카테고리의 다른 글
리눅스 명령어 - 파일 처리 (0) | 2024.04.03 |
---|---|
리눅스 명령어 - 문자열 처리 (0) | 2024.04.03 |
리눅스 명령어 - 시스템 관리(2/2) (0) | 2024.03.28 |
리눅스 명령어 - 시스템 관리(1/2) (0) | 2024.03.28 |
리눅스 파일 시스템 구조 (0) | 2023.09.24 |