컴퓨터를 사용하시는 분들이라면, 적어도 한 번 이상은 바탕화면에 새 폴더(직박구리나 다른 새 이름이 기본값으로 들어가는)를 만들어보신 분들이 있을 것이다. 조금 더 능숙하게 컴퓨터를 사용하시는 분들이라면, 아마 텍스트(메모장) 파일을 바탕화면에 만들어 보신 분들도 있을 것이다(그래픽 환경이기 때문에 만들기가 쉽다. 바탕화면 우클릭 -> 새로만들기 -> 텍스트 문서다). 만들어진 파일을 지우는 것은 그냥 이들 파일과 폴더를 휴지통에 버리는 것으로 끝난다.
리눅스 역시, 윈도우와 마찬가지로 폴더와 파일 만들기, 그리고 지우기 기능을 지원한다. 다만 인터페이스가 윈도우처럼 그래픽 환경이 아니라 명령어를 입력해서 진행해야한다는 불편함이 있다.(물론 익숙해지면 쉽지만)
1. 새 폴더 만들기와 빈 폴더 지우기.
우선 홈 디렉토리로 이동한 뒤(cd ~), ls -lh 명령어로 현재 자신이 위치한 폴더 내에 어떤 파일이 있는지 확인한다.
필자는 위와 같이 1개의 폴더와 2개의 뭔지 모를 파일로 해당 폴더가 채워져있다.(필자와 결과가 동일하지 않아도 된다) 그럼 여기에 새 폴더 하나를 다음 명령어를 입력하여 만들어보려고 한다.
=================
mkdir new_folder
=================
다음과 같이 new_folder라는 이름이 붙은 새 폴더가 생성되었다. 이제 해당 폴더에 무엇이 있는지 확인하고, 빈 파일이라면 폴더를 삭제해보자.
===================
ls -lh new_folder
rmdir new_folder
===================
위의 예처럼, mkdir(make directory) 명령어와 rmdir(remove directory) 명령어를 이용해 새 폴더를 만들거나, "빈 폴더"를 지울 수 있다.(필자가 빈 폴더를 지운다고 명시한 것에 주목하자)
2. 새 파일 만들기와 파일 지우기.
이번에는 "test"라는 이름으로 새 폴더를 만들고 cd 명령어로 해당 폴더로 이동하자. 파일을 만드는 방법에는 여러가지가 있는데, 어려운 방법은 추후 포스팅에서 보기로 하고, 우선 윈도우에서 새로 만들기를 통해 만든것처럼 간단하게 만들 수 있는 명령어를 적용해보자. 그리고 ls -lh로 test 폴더 내에 무엇이 존재하는지 보도록 하자.
===========
mkdir test
cd test
ls -lh(빈 폴더임을 확인해보자)
touch file1
ls -lh
===========
만들어진 빈 폴더에 touch 명령어를 사용하니, file1이라는 이름으로 파일이 생성된 것이 보인다. 이제 만들어진 파일을 다음의 명령어로 지워보자.
=======
rm file1
=======
만들어진 file1 파일이 삭제된 것이 확인되었다. 이처럼, touch 명령어는 윈도우의 텍스트 새로 만들기를 바탕화면 우클릭으로 진행한 것과 동일한 효과를 가지고, rm(remove) 명령어는 특정 이름의 파일을 지우는 효과를 낸다.
3. 비어있지 않은 폴더 지우기.
다시 해당 폴더에 'test'라는 이름으로 파일이나 폴더를 만들고, 상위 폴더로 이동하자. 그리고 rmdir 명령어로 test라는 파일(폴더)이 들어있는 test폴더를 지워보자. 아마 아래의 사진처럼 빈 폴더가 아니라 지울 수 없다는 경고가 뜰 것이다.
=============
touch test
cd ..
rmdir test
=============
rmdir 명령어의 가장 큰 단점은 비어있는 폴더만 삭제할 수 있다는 것이다. 따라서, rmdir를 이용해 폴더를 삭제하기 위해서는, 해당 폴더 내부에 들어가, 존재하는 모든 파일과 폴더를 다시 rmdir나 rm 명령어로 싸그리 지워줘야 하는 불편함이 있다. 지금이야 파일 1개만 있기 때문에 큰 문제가 되지는 않지만, 만약 해당 폴더에 폴더나 파일이 무수히 많다면...(그 폴더들에도 파일이 많다면...)
rm 명령어로는 디렉토리를 지울 수 없기 때문에 "rm test"라는 명령어를 쓰더라도 오류가 발생한다. 그러나 rm 명령어는 이전에 배운 디렉토리 이동 명령어처럼 옵션을 제공하며, 이 옵션을 통해 비어있지 않은 폴더도 삭제할 수 있다.
rm 명령어에 -r 옵션만 붙였음에도 test 폴더(디렉토리)와 그 하위의 모든 것을 삭제하겠냐고 물어본다. 아이러니하게도 폴더를 지우는 명령어인 rmdir에서는 이러한 옵션이 지원되지 않는다...
해당 명령어로 폴더를 지우겠다고 y를 입력하면, 폴더를 비롯해 폴더 하위의 파일과 폴더까지 지울 것이냐고 물어본다.
모두 y를 입력하여 제거하자.
4. 삭제 여부 물어보지 말고 파일/폴더 지우기
하나의 폴더 아래에 여러 개의 파일과 폴더가 존재할 때, 이들을 한 번에 지울 수 있는 명령어가 rm -r 옵션이라고 위에서 언급했다. 그런데, 이 옵션을 사용하면, 각 파일과 디렉토리마다 지우겠냐는 컴퓨터의 되물음에 일일이 답을 해야하는 불편함이 있다. 만약 지우고자하는 폴더 아래에 파일이 100개 넘게 존재한다면, 그 많은 파일에 대해 일일이 y를 입력하는 것은 시간 낭비다. 비어있지 않은 폴더를 만들고, 이를 지우는 rm -r 명령어에 f 옵션을 추가해보자.
=================
mkdir test
cd test
touch file1 file2 file 3
mkdir folder
cd ..
ls -lh(test폴더 존재확인)
rm -rf test
ls -lh(test폴더 존재 확인)
=================
rm -r 에 f 옵션을 동시에 적용하면, 파일이나 폴더를 삭제하는 과정에서 사용자에게 해당 작업을 진행할 지 질문하는 것 없이 바로 삭제한다.
인터넷에서 검색을 진행하다보면, 절대 입력해서는 안되는 명령어로 리눅스의 rm -rf /*이 나타나는 것을 보신 분들이 있을 것이다. 여기까지 글을 읽으신 분들은 이제 그 이유를 잘 아시리라 생각한다.
마지막으로, 위에서 언급한 명령어 및 옵션을 표로 간략하게 나타내면서, 이번 포스팅을 마무리한다.
파일 / 폴더 생성 및 삭제 | |
mkdir 폴더명 [폴더2 폴더 3...] | make directory, 빈 폴더 [폴더2 폴더 3...] 생성 |
rmdir 폴더명 [폴더2 폴더 3...] | remove directory, 존재하는 빈 폴더 [폴더2 폴더 3...]제거 |
touch 파일명 [파일2 파일3...] | 빈 파일 [파일2 파일3...] 생성 |
rm 파일명 [파일2 파일3...] | remove, 존재하는 파일 [파일2 파일3...]의 삭제 |
rm -r 폴더명 | remove -recursive, 폴더 내의 모든 문서도 함께 삭제 |
rm - f 파일명 or rm -rf 폴더명 | remove -force, 비어있지 않은 폴더 또는 파일을 물어보지 않고 삭제 |
'IT Security > LINUX Basic' 카테고리의 다른 글
6. LINUX - 사용자 계정 생성 및 삭제 (0) | 2019.08.24 |
---|---|
5. LINUX - 파일 보관을 위한 압축/해제, tar (0) | 2019.08.11 |
4. LINUX - 파일 찾기, 내용 확인 및 파일 이동/이름 변경/복사/ (0) | 2019.08.10 |
3. LINUX - VI 편집기 사용법 (0) | 2019.08.08 |
1. Linux Directory 이동 명령어 (0) | 2019.07.09 |
댓글