리눅스 파일 및 디렉터리 관리 기본 명령어 가이드

1. 파일 및 디렉터리 정보 조회

1.1 디스크 사용량 확인 (du)

du 명령어는 특정 디렉터리나 파일이 차지하는 디스크 공간을 측정합니다. 전체 크기를 요약하여 보려면 -sh 옵션을 사용합니다.

du -sh /var/log

위 명령어는 /var/log 디렉터리의 총 용량과 하위 디렉터리의 크기를 종합하여 출력합니다.

1.2 텍스트 파일 통계 (wc)

wc 명령어는 파일의 줄 수, 단어 수, 바이트 수를 계산합니다. 로그 파일의 줄 수만 빠르게 확인하려면 -l 옵션을 추가합니다.

wc /var/log/nginx/access.log
  • 출력되는 세 개의 숫자는 순서대로 줄 수, 단어 수, 바이트 수를 의미합니다.

2. 파일 및 디렉터리 생성

2.1 빈 파일 생성 (touch)

리눅스에서는 파일 확장자(.txt, .sh 등)가 시스템적으로 강제되지 않으며, 파일명은 대소문자를 엄격히 구분합니다. touch 명령어는 빈 파일을 생성하거나 기존 파일의 타임스탬프를 업데이트합니다.

중괄호 확장(Brace Expansion) 문법을 활용하면 여러 파일을 한 번에 생성할 수 있습니다.

# report_A.pdf 부터 report_E.pdf 까지 연속 생성
touch /tmp/docs/report_{A..E}.pdf

# 쉼표로 구분된 특정 패턴의 파일 생성
touch /tmp/docs/image_{alpha,beta,gamma}.png

2.2 시스템 시간 활용 및 동적 디렉터리 생성

date 명령어로 현재 시스템 시간을 조회할 수 있으며, 포맷팅 옵션(%Y: 연도, %m: 월, %d: 일 등)을 지정할 수 있습니다. 명령어 치환(Command Substitution)을 통해 시간 값을 파일명이나 디렉터리명에 동적으로 할당할 수 있습니다.

# 현재 시간 포맷팅 확인
date +"%Y-%m-%d %H:%M:%S"

# 월별 백업 디렉터리 일괄 생성 (중괄호 확장은 mkdir 등 다른 명령어와 결합 가능)
mkdir -p /tmp/backups/2023_{01..12}

# 타임스탬프가 포함된 백업 파일 생성 ($(명령어) 또는 `명령어` 문법 사용)
touch /tmp/backups/snapshot_$(date +%Y%m%d_%H%M%S).tar.gz

시간 포맷팅에 대한 상세 매뉴얼은 man date 명령어를 실행하여 확인할 수 있습니다.

3. 파일 및 디렉터리 복사

cp 명령어는 파일이나 디렉터리를 지정된 위치로 복사합니다.

# 기본 파일 복사
cp ./config/app.yaml ./backup/

# 복사하며 파일명 변경
cp ./config/app.yaml ./backup/app_production.yaml

# 디렉터리 전체 복사 (-r 옵션 필수)
cp -r ./src/ ./dist/

# 동일한 파일명 존재 시 확인 메시지 없이 강제 덮어쓰기 (-f 옵션)
cp -f ./config/app.yaml ./backup/

4. 파일 이동 및 이름 변경

리눅스에는 독립적인 이름 변경 명령어가 없으며, mv 명령어를 사용하여 파일 이동 및 이름 변경을 모두 처리합니다.

# 다른 디렉터리로 파일 이동
mv ./temp_data.csv ./archive/

# 동일 디렉터리 내에서 파일 이름 변경
mv ./old_script.sh ./new_script.sh

5. 파일 및 디렉터리 삭제

rm 명령어는 파일이나 디렉터리를 삭제합니다. 잘못된 사용 시 시스템에 치명적인 영향을 줄 수 있으므로 각별한 주의가 필요합니다. 중요한 파일은 즉시 삭제하기보다 별도의 휴지통 디렉터리로 이동 후 정기적으로 정리하는 방식을 권장합니다.

# 단일 파일 삭제
rm ./temp_data.csv

# 디렉터리 및 하위 내용 전체 삭제 (-r 옵션)
rm -r ./old_project/

# 확인 메시지 없이 디렉터리 강제 삭제 (-rf 옵션, 루트 경로 등 사용 시 절대 주의)
rm -rf ./cache/*

# 특정 패턴(예: 2023년 11월 로그)을 가진 파일만 일괄 삭제
rm -f /var/log/app/server_2023-11-*.log

6. 소유권 및 접근 권한 관리

6.1 소유자 및 그룹 변경 (chown)

파일이나 디렉터리의 소유자를 변경할 때 사용합니다. 하위 디렉터리까지 재귀적으로 적용하려면 -R 옵션을 사용합니다.

sudo chown -R deploy_user:deploy_group /var/www/html

6.2 읽기/쓰기/실행 권한 변경 (chmod)

파일의 접근 권한을 수정합니다. 보안상 777(모든 사용자에게 전체 권한 부여) 설정은 권장되지 않으며, 필요 최소한의 권한(예: 755)을 설정하는 것이 엔지니어링 모범 사례입니다.

# 소유자에게는 모든 권한, 그룹 및 기타 사용자에게는 읽기/실행 권한 부여
sudo chmod 755 /var/www/html

태그: linux bash command-line file-system access-control

8월 17일 02:23에 게시됨