반응형

image.png

안녕하세요 가야태자 @talkit 입니다.

오늘도 어제에 이어서 제 본업쪽 관련 된 글 입니다.

이글은 https://talkit.tistory.com/category/%EB%A6%AC%EB%88%85%EC%8A%A4%28LINUX%29 에서도 같이 연재 되고 있습니다.

파일 이동 시키기 mv 명령어 - https://talkit.tistory.com/667

위 글과 같이 오늘도 파일에 관련된 글입니다.

어제 글에서 살짝 힌트를 보여 드렸습니다. ^^

하지만 오늘 본격적으로 적어 보도록 하겠습니다.

우선 복사하다를 영어로 하면 copy 가 됩니다.

리눅스에서 cp는 copy의 약자 입니다. ^^


cp [옵션들] 원본파일 대상파일

음 CP의 옵션은 -r 하고 -f -v 정도 아시면 됩니다. ^^

먼저 -r 은 하위 디렉토리까지 복사를 한다는 이야기 입니다. 그래서 디렉토리를 복사할때는 무건 -r을 넣어 주셔야 합니다.

그리고, -f 는 어제 mv와 동일하게 강제로 파일을 덮어 씁니다. -f를 안주면 덮어 쓸껀지 물어 봅니다. ^^

-v 같은 경우는 복사하는 내용을 보여 줍니다.

cp와 mv의 가장 큰 차이점은 cp는 복사라서 원본이 그대로 남구요. mv는 원본이 사라진다는 겁니다. ^^


[talkit@localhost test]$ ls -al
합계 4
drwxrwxr-x 2 talkit talkit  22 12월 17 02:16 .
drwx------ 6 talkit talkit 147 12월 17 02:16 ..
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:16 test.txt
[talkit@localhost test]$

mv 와 마찬가지로 저기 보이는 test.txt 파일을 복사해 보겠습니다.


cp test.txt test_target.txt

명령어를 수행 하면


[talkit@localhost test]$ cp test.txt test_target.txt
[talkit@localhost test]$ ls
test.txt  test_target.txt
[talkit@localhost test]$

결과는 위와 같습니다.

test.txt와 test_target.txt 가 그대로 있습니다.


[talkit@localhost test]$ mkdir source
[talkit@localhost test]$ ls -al
합계 8
drwxrwxr-x 3 talkit talkit  59 12월 17 02:19 .
drwx------ 6 talkit talkit 147 12월 17 02:16 ..
drwxrwxr-x 2 talkit talkit   6 12월 17 02:19 source
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:16 test.txt
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:18 test_target.txt
[talkit@localhost test]$

source 라는 디렉토리가 생겼습니다

저 아이를 target 디렉토리로 변경해 보겠습니다.

틀린 명령어는 아래와 같습니다.


cp source target

정확한 명령어는 아래와 같습니다.


 cp -r source target

두가지 명령어를 모두 수행 해보겠습니다.


[talkit@server02 test]$ cp source target
cp: omitting directory `source'
[talkit@server02 test]$ cp -r source target
[talkit@server02 test]$ ls -al
합계 8
drwxrwxr-x 4 talkit talkit  73 12월 17 02:22 .
drwx------ 6 talkit talkit 147 12월 17 02:16 ..
drwxrwxr-x 2 talkit talkit   6 12월 17 02:19 source
drwxrwxr-x 2 talkit talkit   6 12월 17 02:22 target
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:16 test.txt
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:18 test_target.txt
[talkit@server02 test]$

복사할 내용 중에 디렉토리가 포함되어 있으면 오류가 납니다.

반드시 -r 옵션을 넣어 주셔야 합니다.

첫번째에서는 오류가 나고 두번째에서는 잘 복사가 되었습니다.

이번에는 target 디렉토리 안에 test.txt와 test_target.txt 를 한꺼번에 복사해보겠습니다.

*를 이용하시면 됩니다.


cp *.txt target/

여러분은 / 없이 target까지만 치시면 됩니다. 저는 저게 디렉토리라는 것을 나타내려고 /를 붙인 것 뿐입니다.

한번 해보겠습니다.


[talkit@server02 test]$ cp *.txt target
[talkit@server02 test]$ ls -alR
.:
합계 8
drwxrwxr-x 4 talkit talkit  73 12월 17 02:22 .
drwx------ 6 talkit talkit 147 12월 17 02:16 ..
drwxrwxr-x 2 talkit talkit   6 12월 17 02:19 source
drwxrwxr-x 2 talkit talkit  45 12월 17 02:25 target
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:16 test.txt
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:18 test_target.txt

./source:
합계 0
drwxrwxr-x 2 talkit talkit  6 12월 17 02:19 .
drwxrwxr-x 4 talkit talkit 73 12월 17 02:22 ..

./target:
합계 8
drwxrwxr-x 2 talkit talkit 45 12월 17 02:25 .
drwxrwxr-x 4 talkit talkit 73 12월 17 02:22 ..
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:25 test.txt
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:25 test_target.txt
[talkit@server02 test]$

복사는 오류 없이 잘 넘어 갔구요.

일부러 오랫만에 ls -alR 명령어를 이용해서 하위 디렉토리에 있는 파일을 리스팅 해보았습니다.

그랬더니 ^^ 잘 갔네요

이번에는 -v 옵션을 더 넣으서 target 폴더를 target2 폴더로 복사해보겠습니다.


[talkit@server02 test]$ cp -rv target target2
`target' -> `target2'
`target/test.txt' -> `target2/test.txt'
`target/test_target.txt' -> `target2/test_target.txt'
[talkit@server02 test]$ ls -alR
.:
합계 8
drwxrwxr-x 5 talkit talkit  88 12월 17 02:26 .
drwx------ 6 talkit talkit 147 12월 17 02:16 ..
drwxrwxr-x 2 talkit talkit   6 12월 17 02:19 source
drwxrwxr-x 2 talkit talkit  45 12월 17 02:25 target
drwxrwxr-x 2 talkit talkit  45 12월 17 02:26 target2
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:16 test.txt
-rw-rw-r-- 1 talkit talkit  28 12월 17 02:18 test_target.txt

./source:
합계 0
drwxrwxr-x 2 talkit talkit  6 12월 17 02:19 .
drwxrwxr-x 5 talkit talkit 88 12월 17 02:26 ..

./target:
합계 8
drwxrwxr-x 2 talkit talkit 45 12월 17 02:25 .
drwxrwxr-x 5 talkit talkit 88 12월 17 02:26 ..
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:25 test.txt
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:25 test_target.txt

./target2:
합계 8
drwxrwxr-x 2 talkit talkit 45 12월 17 02:26 .
drwxrwxr-x 5 talkit talkit 88 12월 17 02:26 ..
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:26 test.txt
-rw-rw-r-- 1 talkit talkit 28 12월 17 02:26 test_target.txt
[talkit@server02 test]$

복사하는 모습이 보이지요.

오늘은 일단 여기 까지 적고 수정할일이 있으면 수정 해놓겠습니다.

감사합니다.

반응형

+ Recent posts