본문 바로가기
Linux

Linux 복사와 이동 명령어 (파일,디렉토리명 변경 명령)

by allwing12 2022. 12. 30.

저번 글에서 그냥 명령어를 쭉 쓴 것 같아서 간단하게 정리를 좀 해보려고 해요

우선은 복사와 이동 명령어를 알아보는데 주의 할 점도 같이 알아볼거에요

일단 바로 명령어로 들어가볼게요!

 

 

 

일단 복사 명령어부터 알아보려고 해요 지금 저는 보면 ttt라는 폴더(디렉토리) 안에 들어와있고

그 폴더 안에는 system.log라는 파일을 제가 임의로 하나 만들어놨어요

복사 명령어는 기본적으로 cp 라는 것을 붙여서 사용합니다.

 

cp system.log test.log
// system.log 파일을 test.log 라는 파일 이름으로 복사

 

위와 같이 사용해서 파일을 복사할 수 있어요

위에 써놓은 것 처럼 " cp 파일명 복사한 후 파일명 " 이렇게 하면 복사가 됩니다.

단, 여기에서 주의 할 점이 있는데 예를 들어서 system.log 파일을 test.log 라는 파일의 이름으로 복사를 할건데

이미 같은 디렉토리 안에 test.log 라는 파일이 있고 중요한 내용이 있는 상태에서 cp 명령어를 통해서

다른 파일을 test.log 라는 이름으로 복사를 진행하게 되면 자동적으로 덮어쓰기가 되어버려서

test.log에 있는 중요한 파일 내용이 짜라란 하고 없어질 수 있으니 꼭 체크 하셔야해요!

윈도우는 덮어쓰기에 대한 것을 물어보지만 리눅스는 물어보지 않고 덮어써버리니 참고해주세요!

 

아 그리고 복사한 파일은 같은 디렉토리에 저장이 되니 이 부분도 참고해주세요!

 

그리고 이렇게 파일 복사에 대해서 배웠는데 문득 디렉토리는 복사가 안되나 하는 생각이 들어서 이것저것 시도를 해봤었어요

근데 디렉토리도 복사가 됩니다!

디렉토리 복사의 경우에는 디렉토리 위치를 알아야합니다.

 

 

 

자 지금 보면 제가 ttt라는 디렉토리 안에 ddd라는 디렉토리를 하나 만들어놨습니다.

여기에서 ddd 라는 게 디렉토리인지 파일인지 어떻게 알지 라고 생각한다면

제 이전글을 보고 와주세요!

 

자 우선 현재 ttt라는 폴더의 위치는 /home/test/ttt 입니다.

그러면 ddd 라는 폴더의 위치는 당연히 /home/test/ttt/ddd가 되겠죠

이 현재 내가 위치한 곳을 알아야 합니다.

자 그러면 ttt 폴더 내에는 ddd라는 디렉토리가 하나가 있고 복사할 디렉토리가 있어야겠죠 ?

 

 

 

위의 사진대로 보면 저는 /home/test/ttt 라는 디렉토리안에 ddd와 qqq 라는 디렉토리 두개가 있습니다.

여기에서 저는 qqq라는 디렉토리를 ddd 라는 디렉토리 안에 복사를 하려고 합니다.

 

cp -r qqq /home/test/ttt/ddd

// qqq 를 /home/test/ttt 안에 있는 ddd 라는 디렉토리로 복사

 

위의 명령어 처럼 cp 에 -r 을 붙이고 복사할 디렉토리 명과 어디에 들어갈지 복사할 디렉토리의 위치를 적으면

ddd 라는 디렉토리 안에 qqq 라는 디렉토리가 복사가 됩니다.

만약 /home/test 안에 있는 ttt 라는 폴더를 복사하고 싶다면 test 안에 폴더 하나가 있어야 가능합니다.

이 부분 참고해주세요!

 

아까 이야기 드렸던 것 처럼 cp 명령어의 주의할 점은 이미 있는 파일의 이름으로 파일을 복사한다면

자동적으로 덮어쓰기가 된다는 점이 있으니 꼭 주의 해야합니다.

 

 


이번에는 파일이나 디렉토리 명을 바꿀 수도 있고 파일의 위치를 옮길 수도 있는 명령어를 알아보려고 합니다.

그 명령어는 " mv " 명령어 입니다.

cp는 copy , mv 는 move 죠 ??

자 그러면 한 번 이동부터 해보는 것을 해보려고 합니다.

 

우선은 파일 이동을 먼저 해보려고 합니다.

 

 

우선 /home/test/ttt 라는 폴더이고 이 폴더 안에는 ddd와 qqq라는 폴더와

system.log 와 test.log 라는 파일이 있습니다.

저는 system.log 라는 파일을 /home/test 위치로 이동을 하려고 합니다.

 

mv system.log /home/test

// system.log 파일을 /home/test 위치의 test 디렉토리로 이동

 

위와 같이 사용하여 system.log 파일을 이동할 수 있습니다.

여기에서도 주의할 점이 있는데요, cp 명령어와 같이 같은 이름의 파일이 있다고 한다면 mv 명령어를 통해 파일을 이동하면

파일이 자동으로 덮어쓰기가 되니까 이 부분 꼭 주의 해주세요!

 

자 그러면 다시 돌아와서 위에서 test.log 라는 파일 이름을 ttt.log 로 이름을 바꿔보려고 합니다.

 

mv test.log ttt.log
// 파일이름과 변경할 파일 이름을 작성한다.
mv ddd iii
// 디렉토리 이름 변경도 위와 같이 작성한다.

 

위와 같이 기존 파일 이름과 변경할 파일 이름을 작성하여 동일한 mv 명령어를 통해서 파일 이름을 변경할 수 있습니다.

다만, 주의할점은 동일 한데 파일이름이 test.log 파일 ttt.log 파일 두개가 있는 상태에서 test.log 를 ttt.log로 이름을

변경한다면 자동적으로 덮어쓰기가 되어서 내용이 중복되게 변경 되니 참고해주세요!

(단 파일은 test.log 는 없어지고 ttt.log만 남게 됩니다.)

디렉토리 이름 변경도 동일하게 기존 디렉토리 이름과 바꿀 디렉토리 이름으로 작성하면 변경이 됩니다.

 

 

 

이렇게 파일 이름 변경과 파일 위치 변경도 해봤는데요 그러면 이제 디렉토리 이동을 해봐야겠죠 ?!

디렉토리 이동은 mv 로만은 안됩니다 그렇다고 -r 을 붙이는 건 mv 명령어에 없는 명령어라 안됩니다..!!

 

 

자 우선은 ttt폴더 안에 있는 qqq 를 /home/test로 이동을 해보려고 합니다.

여기에서 사용하는 명령어는 mv -f 입니다!

 

 

mv -f qqq /home/test

// 위와 같이 -f 를 붙이고 이동할 폴더명과 이동할 위치를 작성하면 된다.

 

위와 같이 작성하면 이동이 됩니다.

다만, 이동할 곳에 동일한 폴더 명이 있고 그 폴더에 파일이 있다면 이동이 안됩니다.

자동 덮어쓰기가 안되고 이동자체도 안되기 때문에 만약 안된다면 이동할 위치에 동일한 폴더명이 있고 그 안에 파일이 있다고 생각

하시면 되고 이동할 위치에 동일한 폴더명은 있으나 그 폴더가 빈 폴더이면 이동이 됩니다.

 

이렇게 오늘 mv 명령어와 cp 명령어에 대해서 알아봤습니다.

저도 부족하지만 궁금하신 부분은 댓글 달아주시면 알아보고 답변 드리겠습니다!

'Linux' 카테고리의 다른 글

Linux 권한 변경 명령어, 계정 생성 및 삭제 명령어  (0) 2022.12.28
Linux 기초 명령어  (0) 2022.12.27
Ubuntu 에서 자바 실행하기  (0) 2022.12.23
Mac M1 Ubuntu 설치하기  (1) 2022.12.22

댓글