리눅스 시스템을 사용하다 보면 파일과 디렉토리를 효율적으로 관리하는 것이 필수적입니다. 이번 포스트에서는 리눅스에서 가장 많이 사용되는 파일 관리 명령어인 ls, cp, mv, rm, mkdir에 대해 알아보겠습니다. 이 명령어들을 제대로 익히면 리눅스 시스템에서 파일과 디렉토리를 더욱 효과적으로 관리할 수 있습니다.
1. ls 명령어: 파일 목록 확인하기
ls
명령어는 ‘list’의 약자로, 현재 디렉토리에 있는 파일과 폴더의 목록을 보여줍니다.
기본 사용법
현재 디렉토리의 파일과 폴더 목록을 확인합니다.
ls
주요 옵션
-l
: 파일의 상세 정보(권한, 소유자, 크기, 수정 날짜 등)를 표시합니다.-a
: 숨김 파일을 포함한 모든 파일을 표시합니다.-h
: 파일 크기를 사람이 읽기 쉬운 형태(KB, MB, GB)로 표시합니다.-R
: 하위 디렉토리의 내용까지 재귀적으로 표시합니다.-t
: 수정 시간을 기준으로 정렬합니다.-S
: 파일 크기를 기준으로 정렬합니다.
사용 예시
상세 정보와 함께 파일 목록을 확인하려면:
ls -l
숨김 파일을 포함한 모든 파일을 확인하려면:
ls -a
사람이 읽기 쉬운 형태로 상세 정보를 확인하려면:
ls -lh
여러 옵션을 조합하여 사용할 수도 있습니다. 예를 들어, 숨김 파일을 포함한 상세 목록을 확인하려면:
ls -la
특정 디렉토리의 내용을 확인하려면:
ls /home/username/Documents
2. cp 명령어: 파일 복사하기
cp
명령어는 ‘copy’의 약자로, 파일이나 디렉토리를 복사할 때 사용합니다.
기본 사용법
파일을 복사합니다.
cp 원본파일 대상파일
주요 옵션
-r
,-R
: 디렉토리를 재귀적으로 복사합니다.-i
: 덮어쓰기 전에 사용자에게 확인을 요청합니다.-v
: 복사 과정을 자세히 보여줍니다(verbose).-p
: 파일의 속성(소유자, 권한, 타임스탬프)을 유지합니다.-u
: 대상 파일이 없거나 원본 파일이 더 최신일 때만 복사합니다.
사용 예시
file1.txt를 file2.txt로 복사하려면:
cp file1.txt file2.txt
여러 파일을 한 디렉토리로 복사하려면:
cp file1.txt file2.txt file3.txt /destination/directory/
디렉토리를 복사하려면 -r
옵션이 필요합니다:
cp -r source_directory/ destination_directory/
덮어쓰기 전에 확인하려면:
cp -i file1.txt file2.txt
주의사항
cp
명령어는 기존 파일을 별도의 경고 없이 덮어쓸 수 있으므로, 중요한 파일을 복사할 때는-i
옵션을 사용하는 것이 좋습니다.- 디렉토리를 복사할 때는 반드시
-r
옵션을 사용해야 합니다.
3. mv 명령어: 파일 이동 및 이름 변경하기
mv
명령어는 ‘move’의 약자로, 파일이나 디렉토리를 이동하거나 이름을 변경할 때 사용합니다.
기본 사용법
파일을 이동하거나 이름을 변경합니다.
mv 원본파일 대상파일
주요 옵션
-i
: 덮어쓰기 전에 사용자에게 확인을 요청합니다.-v
: 이동 과정을 자세히 보여줍니다(verbose).-u
: 대상 파일이 없거나 원본 파일이 더 최신일 때만 이동합니다.-b
: 덮어쓰기 전에 백업 파일을 생성합니다.
사용 예시
파일 이름을 변경하려면:
mv oldname.txt newname.txt
파일을 다른 디렉토리로 이동하려면:
mv file.txt /destination/directory/
여러 파일을 한 디렉토리로 이동하려면:
mv file1.txt file2.txt file3.txt /destination/directory/
디렉토리 이름을 변경하려면:
mv old_directory/ new_directory/
덮어쓰기 전에 확인하려면:
mv -i file1.txt file2.txt
주의사항
mv
명령어도cp
와 마찬가지로 기존 파일을 별도의 경고 없이 덮어쓸 수 있으므로, 중요한 파일을 이동할 때는-i
옵션을 사용하는 것이 좋습니다.- 이름 변경과 이동은 같은 명령어를 사용하지만, 목적지가 디렉토리인지 파일인지에 따라 동작이 달라집니다.
4. rm 명령어: 파일 삭제하기
rm
명령어는 ‘remove’의 약자로, 파일이나 디렉토리를 삭제할 때 사용합니다.
기본 사용법
파일을 삭제합니다.
rm 파일명
주요 옵션
-r
,-R
: 디렉토리를 재귀적으로 삭제합니다.-f
: 강제로 삭제합니다(확인 요청 없음).-i
: 삭제 전에 사용자에게 확인을 요청합니다.-v
: 삭제 과정을 자세히 보여줍니다(verbose).
사용 예시
파일을 삭제하려면:
rm file.txt
여러 파일을 삭제하려면:
rm file1.txt file2.txt file3.txt
디렉토리와 그 내용을 삭제하려면:
rm -r directory/
확인 없이 강제로 삭제하려면:
rm -f file.txt
디렉토리와 그 내용을 강제로 삭제하려면:
rm -rf directory/
삭제 전에 확인하려면:
rm -i file.txt
주의사항
rm
명령어는 매우 강력하며, 삭제된 파일은 복구하기 어렵거나 불가능할 수 있습니다.- 특히
rm -rf
명령어는 매우 위험하므로 신중하게 사용해야 합니다. - 시스템 디렉토리나 중요한 파일을 삭제하지 않도록 주의해야 합니다.
- 루트 디렉토리에서
rm -rf /
와 같은 명령어는 절대 실행하지 마세요! 시스템 전체가 삭제될 수 있습니다.
5. mkdir 명령어: 디렉토리 생성하기
mkdir
명령어는 ‘make directory’의 약자로, 새로운 디렉토리를 생성할 때 사용합니다.
기본 사용법
새 디렉토리를 생성합니다.
mkdir 디렉토리명
주요 옵션
-p
: 필요한 경우 상위 디렉토리도 함께 생성합니다.-v
: 생성 과정을 자세히 보여줍니다(verbose).-m
: 생성되는 디렉토리의 권한을 설정합니다.
사용 예시
새 디렉토리를 생성하려면:
mkdir new_directory
여러 디렉토리를 한 번에 생성하려면:
mkdir dir1 dir2 dir3
상위 디렉토리가 없는 경우에도 전체 경로를 생성하려면:
mkdir -p parent/child/grandchild
특정 권한을 가진 디렉토리를 생성하려면:
mkdir -m 755 directory_name
디렉토리 생성 과정을 자세히 보려면:
mkdir -v directory_name
6. 실용적인 팁
명령어 조합하기
여러 명령어를 파이프(|
)로 연결하여 더 복잡한 작업을 수행할 수 있습니다.
예를 들어, 파일 크기순으로 상위 5개 파일을 확인하려면:
ls -lh | sort -rh | head -5
와일드카드 사용하기
패턴 매칭을 위해 와일드카드를 사용할 수 있습니다.
*
: 0개 이상의 문자와 일치?
: 정확히 1개의 문자와 일치[]
: 대괄호 안의 문자 중 하나와 일치
예를 들어, 모든 txt 파일을 삭제하려면:
rm *.txt
상대 경로와 절대 경로
- 절대 경로: 루트 디렉토리(
/
)부터 시작하는 전체 경로 - 상대 경로: 현재 위치를 기준으로 하는 경로
.
: 현재 디렉토리 ..
: 상위 디렉토리
예를 들어, 상위 디렉토리로 파일을 복사하려면:
cp file.txt ..
이러한 리눅스 파일 관리 명령어들을 잘 활용하면, 터미널에서 빠르고 효율적으로 파일 작업을 수행할 수 있습니다. 명령어의 기본 사용법을 익히고 다양한 옵션을 조합해보면서 자신만의 워크플로우를 만들어보세요. 🙂