리눅스 파일 관리 명령어 – ls, cp, rm, mv, touch, file, find
리눅스에서 파일과 디렉토리 관리는 시스템 사용의 핵심입니다. 이번 글에서는 파일 조회, 복사, 삭제, 이동, 생성, 속성 확인, 검색까지 꼭 알아야 할 명령어 7가지를 실용적인 예제 중심으로 정리해 드립니다.
1. ls – 파일 및 디렉토리 목록 확인
설명
디렉토리 내부에 존재하는 파일과 하위 디렉토리를 출력합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-a |
숨김 파일 포함 | ls -a |
-l |
상세 정보 출력 | ls -l |
-r |
역순 정렬 | ls -r |
-R |
하위 디렉토리 포함 | ls -R |
Tip: ls -alh은 개발자들이 자주 사용하는 조합입니다.
2. cp – 파일 및 디렉토리 복사
설명
파일 또는 디렉토리를 복사할 때 사용합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-b |
백업 파일 생성 | cp -b a.txt b.txt |
-f |
강제 덮어쓰기 | cp -f a.txt b.txt |
-i |
덮어쓰기 확인 | cp -i a.txt b.txt |
-r |
디렉토리 전체 복사 | cp -r dir1 dir2 |
주의: -r 옵션 없이는 디렉토리 복사가 안 됩니다.
3. rm – 파일 및 디렉토리 삭제
설명
파일 또는 디렉토리를 삭제합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-f |
묻지 않고 강제 삭제 | rm -f old.txt |
-i |
삭제 전 확인 | rm -i file.txt |
-r |
디렉토리 재귀 삭제 | rm -r old_dir/ |
rm -rf / 명령은 절대 실행 금지! 시스템 전체 삭제 위험이 있습니다.
4. mv – 파일 이동 또는 이름 변경
설명
파일이나 디렉토리를 다른 위치로 이동하거나 이름을 바꿀 때 사용합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-b |
이동 전 백업 생성 | mv -b file.txt file.bak |
-f |
강제 이동 | mv -f old.txt new.txt |
-v |
실행 과정 표시 | mv -v file1 dir/ |
이동 시 대상 위치에 동일 이름 파일이 있으면 덮어쓰게 되므로 주의해야 합니다.
5. touch – 빈 파일 생성 또는 시간 수정
설명
빈 파일을 새로 생성하거나, 기존 파일의 접근·수정 시간을 변경합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-a |
접근 시간 변경 | touch -a log.txt |
-m |
수정 시간 변경 | touch -m log.txt |
-c |
파일이 없으면 무시 | touch -c temp.txt |
-r |
다른 파일의 시간 복사 | touch -r ref.txt target.txt |
파일 존재 여부를 확인하지 않고 실행하는 경우, -c 옵션을 함께 사용하면 에러 방지에 유용합니다.
6. file – 파일 종류 및 속성 확인
설명
파일 확장자와 무관하게, 실제 내부 데이터를 기반으로 파일의 유형을 판단합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
-b |
파일명 제외 출력 | file -b file.txt |
-f |
파일 목록으로 검사 | file -f filelist.txt |
-z |
압축 파일 내부 분석 | file -z archive.gz |
-i |
MIME 타입 출력 | file -i file.txt → text/plain; charset=us-ascii |
의심 파일, 실행 파일, 바이너리 확인 시 유용합니다.
7. find – 조건에 따라 파일 검색
설명
디렉토리 경로 하위에서 조건에 맞는 파일 또는 디렉토리 검색이 가능합니다.
주요 조건 옵션
| 조건 | 설명 | 예시 |
|---|---|---|
-name |
이름 기준 | find /home -name "*.log" |
-user |
소유자 기준 | find /var -user apache |
-perm |
권한 기준 | find . -perm 755 |
-type |
파일 유형 | find . -type d (디렉토리 검색) |
-exec |
명령 실행 | find . -name "*.bak" -exec rm {} \\; |
-exec는 검색 결과에 자동 작업을 적용할 때 강력한 도구입니다.
실전 예제 묶음
# 1. 숨김 파일 포함하여 상세 목록 확인
ls -al
# 2. 텍스트 파일을 백업하며 복사
cp -b report.txt report_backup.txt
# 3. log 디렉토리 전체 삭제
rm -r logs/
# 4. 파일명 변경 (이동과 동일)
mv notes.txt notes_old.txt
# 5. 빈 파일 생성
touch new_file.txt
# 6. 파일 종류 확인
file script.sh
# 7. 특정 사용자 파일 검색
find /home -user devuser
질문 정리
cp와 mv의 차이점은?
cp: 원본 파일을 복사mv: 원본 파일을 이동 또는 이름 변경
디렉토리 안의 모든 파일을 한 번에 삭제하려면?
rm -rf /path/to/dir/*
touch로 파일을 생성했는데 내용이 없어요. 정상인가요?
네, touch는 내용 없는 파일(빈 파일)을 생성하는 게 정상 동작입니다.
find 명령이 너무 느려요. 속도 개선 방법은?
- 경로를 좁게 설정하세요 (
/대신/var/log등) maxdepth,type등 조건을 명확히 사용하세요.
확장자가 없는 파일의 실제 유형을 확인하려면?
file filename
확장자와 무관하게 내부 구조로 파일 종류를 정확히 판별합니다.
정리
리눅스 파일 작업 명령어들은 일상적으로 쓰이는 기본 도구이자 실무 핵심입니다.
ls,cp,rm,mv는 파일 조작touch,file,find는 속성 관리와 탐색에 특화되어 있습니다.
댓글남기기