터미널 - 파일 관리하기

가장 먼저 배울 명령어는 파일 관리를 위한 명령어들이에요. 컴퓨터를 사용할 때를 한번 떠올려 보세요. 여러분들은 아마도 파일 탐색기에서 다음과 같은 행동을 아주 당연하게 하고 계셨을 거예요.

  • 현재 위치 확인
  • 현재 위치의 파일 목록 확인
  • 위치 이동
  • 파일/폴더 이동
  • 파일/폴더 이름 변경
  • 파일/폴더 생성
  • 파일/폴더 복사
  • 파일/폴더 삭제

사실 파일 탐색기는 셸의 시각적인 버전이에요. 그래서 파일 탐색기가 할 수 있는 일은 셸에서도 모두 할 수 있어요. 시각적 컴퓨터 환경에서 컴퓨터를 다루려면 파일 탐색기를 알아야 하듯이, 셸을 배울 때도 이 기능을 가진 명령어들을 먼저 알아야 할 필요가 있어요.


현재 위치 보기

우선 폴더 탐색을 해 볼 건데, 먼저 현재 위치를 알아야겠죠? 다음의 명령어를 실행해 보세요.

pwd

pwd는 현재 위치한 폴더 위치를 안내해주는 기능을 가진 소프트웨어에요. 이를 알아두면 이곳 저곳 폴더를 탐방하다 길을 잃었을 때 언제든 내 위치를 찾을 수 있어요.

윈도우 파일 탐색기의 주소창과 같은 기능을 수행한다고 이해하시면 좋아요.


파일 목록 보기

이번에는 현재 위치한 곳의 폴더/파일 목록을 확인해 볼 차례에요. 다음 명령어를 실행해 보세요.

ls

ls 는 현재 위치에서 파일/폴더 목록을 출력하는 기능을 가진 소프트웨어에요. 파란색으로 나온 항목들은 폴더를 의미해요. 현재 위치에서 어떤 폴더나 파일이 있는지 확인하는 용도로 사용할 수 있어요.

이는 윈도우 파일 탐색기의 리스트와 같은 기능을 수행한다고 이해하시면 좋아요.

이번에는 다음과 같이 추가 옵션을 같이 실행해 보세요.

ls -al

더 상세한 정보와 함께 숨겨진 파일도 같이 출력된 모습이죠? ls 에서 -al 옵션은 다음의 의미를 가져요.

  • a: 모든 파일(숨겨진 파일까지) 출력
  • l: 상세한 정보까지 출력

좀 더 다양한 정보를 같이 확인할 수 있기 때문에, -al 조합으로 자주 실행하게 되실 거예요.


현재 위치 이동하기

이제는 폴더에 진입해볼까요? ls 명령어로 현재 위치의 폴더 목록을 확인하고 다음의 명령어를 참고해 실행해 보세요.

cd 폴더명

저는 Downloads 라는 폴더로 들어가 봤어요. 들어간 이후 다시 pwd 라는 명령어를 실행해보면 현재 위치가 바뀐 것을 볼 수 있죠?

이번에는 상위 폴더로 다시 이동해 볼게요. 다음의 명령어를 실행해 보세요.

cd ..

폴더 또는 파일의 경로에서 .. 은 부모 경로를 의미해요. 다시 이전의 위치로 돌아간 모습이죠? 여기서 다음의 몇 가지 리눅스 경로 기호들을 알아 둘 필요가 있어요.

  • / 폴더 단위의 경로 구분 기호
  • ~ 사용자 홈 폴더의 약자 - 예시) /home/winetree94
  • . 현재 위치
  • .. 부모 위치

리눅스는 이러한 경로 기호들을 다양하게 조합해 원하는 위치로 한번에 이동할 수 있어요. 다음의 예시를 참고해서 다양한 경로로 이동해 보세요.

cd ~/              # 사용자의 홈 폴더로 이동
cd ~/Downloads     # 사용자의 홈 폴더의 Downloads 폴더로 이동
cd /               # 최상위 루트 경로로 이동
cd ../../Downloads # 현재 위치 기준 두 단계 부모 폴더로 이동한 후 Downloads 폴더로 이동
cd /home           # 최상위 루트 경로의 home 폴더로 이동

여기서 한가지 더 알아둘 점은 리눅스는 경로의 선언에 따라 절대 경로상대 경로로 나뉜다는 점이에요.

먼저 상대 경로는 현재 위치를 기준으로 선언한 경로에요. 예를 들어 cd Downloads 또는 cd ./Downloads는 현재 위치에 존재하는 Downloads 라는 폴더로 이동한다는 의미에요. 만약 다른 위치에서 동일한 명령어를 실행한다면 동작하지 않겠죠? 상대 경로는 현재 위치에 따라 해석되는 위치가 바뀐다는 특징이 있어요.

다음 절대 경로는 최상위 루트(/)를 기준으로 선언한 경로에요.. 예를 들어 cd /home/tinyrack/Downloads는 루트 경로를 기준으로 폴더를 이동한다는 의미에요. 그럼 현재 위치가 바뀌더라도 이 명령어는 계속 잘 동작하겠죠? 절대 경로는 현재 위치와 상관 없이 해석되는 위치가 동일하다는 특징이 있어요.

이런 경로 기호들을 처음 접할 땐 많이 헷갈릴 수 있어요. 하지만 한번 익숙해지면 어느 곳이든 쉽게 탐방할 수 있을 거예요. 다음으로 넘어가기 전에 다양한 경로로 한번 모험해 보시길 바래요.


파일 이동하기

이번에는 파일을 이동시키는 명령어에요. 실습을 해보기 전에 아무 파일이나 이동시키면 문제가 될 수 있으니 먼저 새로운 파일을 하나 만들어 볼게요. 다음의 명령어를 실행해 보세요.

touch test.txt

touch 명령어는 새로운 빈 파일을 만들 때 사용할 수 있는 소프트웨어에요. 이후 ls를 사용해서 목록을 확인해 보면 test.txt 라는 파일이 하나 만들어진 모습이죠?

이제 mv를 사용해 볼 차례에요. 다음 명령어를 참고해서 test.txt 파일을 다른 폴더로 이동시켜 보세요.

mv 파일명 이동할_폴더

저는 test.txt 파일을 Downloads 폴더로 이동 시켰어요. 완성된 명령어는 다음과 같아요.

mv test.txt Downloads

이번에는 경로 문법에 따라 다시 부모 폴더로 파일을 이동시켜보세요. 다음과 같이 사용할 수 있어요.

mv test.txt ../

이후 cdls 를 통해 목록을 확인해보면 파일이 잘 이동된 모습이죠? 폴더의 경우도 이와 같은 방법으로 이동시킬 수 있어요.


파일 이름 변경하기

mv의 조금 특이한 건 파일의 이동뿐 아니라 이름 변경에도 사용할 수 있다는 점이에요.

다음의 명령어를 참고해서 파일 이름을 변경해보세요.

mv 기존_파일명 바꿀_파일명

저는 test.txt라는 파일의 이름을 test2.txt로 변경했는데, 완성된 명령어는 다음과 같아요.

mv test.txt test2.txt

이름 변경 후 ls를 사용해서 파일 이름이 잘 바뀌었는지 확인해 보세요.

파일 위치 이동과 이름 변경을 한번에 할 수도 있어요. 다음의 명령어를 참고해 사용해 보세요.

mv 기존_파일 이동할_위치/바꿀_파일명

예시 명령은 다음과 같아요.

mv test2.txt Downloads/test.txt

폴더 이름도 같은 방법으로 변경할 수 있어요.


폴더 생성하기

이번에는 새로운 폴더를 만들어볼게요. 다음 명령어를 참고해 실행해 보세요.

mkdir 폴더명

폴더를 생성하고 ls 명령어로 확인해 보면 잘 생성된 모습이죠?


파일/폴더 복사하기

다음은 복사 명령어에요. 다음의 명령어를 참고해 생성한 파일을 복사해 보세요.

cp 원본_파일 대상_파일

저는 test.txt 파일을 text2.txt 라는 이름으로 복사했는데 완성된 명령어는 다음과 같아요.

cp test.txt text2.txt

만약 폴더를 복사하고 싶다면 -r 옵션을 함께 사용해야 해요. mkdir 명령어로 폴더를 생성하고 다음의 명령어를 참고해 폴더를 복사해 보세요.

cp -r 원본_폴더명 대상_폴더명

저는 MyFolder 라는 폴더를 MyFolder2라는 이름으로 복사했는데 완성된 명령어는 다음과 같아요.

cp -r MyFolder MyFolder2

이후 ls를 통해 결과를 확인해 보면 잘 복사된 모습이죠?


파일/폴더 삭제하기

파일 관리의 마지막은 삭제 기능이에요. 다음의 명령어를 참고해 생성한 파일을 삭제해 보세요.

rm 삭제할_파일명

저는 test.txt라는 파일을 삭제했는데 완성된 명령어는 다음과 같아요.

rm test.txt

만약 폴더를 삭제하고 싶다면 -rf 옵션을 함께 사용해야 해요.

mkdir 명령어로 폴더를 생성하고 다음의 명령어를 참고해 폴더를 삭제해 보세요.

rm -rf 삭제할_폴더명

저는 MyFolder 라는 폴더를 삭제했는데 완성된 명령어는 다음과 같아요.

rm -rf MyFolder

이후 ls를 통해 결과를 확인해 보면 잘 삭제된 모습이죠?

기본적인 파일 관리를 위한 명령어는 이게 다에요. 그렇게 많진 않죠?