리눅스 파일 복사 시간 - linugseu pail bogsa sigan

5월 22, 20212년前 8월 8, 2022 Linux

목차

  • 1 cp명령-파일 복사
      • 1.0.1 "-p" 옵션

파일을 복사하면 원본하고 똑같은 파일이 하나 더 만들어집니다. 그러나 옵션 없는 cp명령은 원본의 "작성일"을 따라가지 않고 복사된 시점을 "작성일"로 설정하게 됩니다. 이 글에서는 cp명령의 기본 사용법과 함께 원본 파일의 "작성일"을 복사된 파일의 "작성일"로 적용하는 옵션 지정에 대해서 소개 하겠습니다.

cp명령-파일 복사

명령 형식

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

파일을 복사할 때 사용합니다. 디렉토리를 지정한 경우 지정된 디렉토리에 복사되어 같은 이름의 파일이 생성됩니다.

"-p" 옵션

"권한, 소유자, 타임 스탬프"도 함께 복사합니다. 소유자를 복사하기 위해서는 "자기 소유 권한" 이거나, "root" 사용자로 실행해야 합니다.

우선 다음 명령으로 예시를 실행하기 전 현재 상태를 확인합니다.

$ umask
0002
$ whoami

centos
$ date

Sat May 22 07:43:41 UTC 2021

다음 예시는 abc.txt 파일을 "-p" 옵션 없이 복사하면 현재 시간으로 def.txt 파일을 작성합니다. 그리고 소유자도 root로 변경되었습니다. "-p" 옵션을 지정해서 복사하면 ijk.txt의 "작성일", "소유자"는 abc.txt의 "작성일", "소유자"를 복사했음을 확인할 수 있습니다.

$ ls -la
-rw-r--r--. 1 user01 centos   44 May 20 12:36 abc.txt
$ sudo cp abc.txt def.txt
$ sudo cp -p abc.txt ijk.txt
$ ls -la
-rw-r--r--. 1 user01 centos   44 May 20 12:36 abc.txt
-rw-r--r--. 1 root   root     44 May 22 07:43 def.txt
-rw-r--r--. 1 user01 centos   44 May 20 12:36 ijk.txt

리눅스에서 생성한 파일이나 폴더는 생성 시간이 있습니다.

위 사진처럼이요. ㅋㅋ

10분 이전에 생성된 파일,폴더를 복사, 이동하는 명령어를 기록 하겠습니다.

/home1/data/korea/real 경로에서 /home1/irteam/xml/data/target/korea 경로로

[폴더 복사]

find /home1/data/korea/real -maxdepth 1 -mindepth 1 -type d -mmin +10 -exec cp -r {} /home1/irteam/xml/data/target/korea \;

[폴더 이동]

find /home1/data/korea/real -maxdepth 1 -mindepth 1 -type d -mmin +10 -exec mv {} /home1/irteam/xml/data/target/korea \;

[파일 복사]

find /home1/data/korea/real -maxdepth 1 -mindepth 1 -type f -mmin +10 -exec cp -r {} /home1/irteam/xml/data/target/korea \;

[파일 이동]

find /home1/data/korea/real -maxdepth 1 -mindepth 1 -type f -mmin +10 -exec mv {} /home1/irteam/xml/data/target/korea \;

maxdepth, mindepth => 하위 디렉토리 범위 지정

-type d, f => 타입이 디렉토리 인지 파일인지

{} => 앞에서 찾은 파일, 폴더 경로를 매핑하는 역할 같은데 자세히는 잘.... 아시는 분은 댓글 달아주세요.

CP 파일복사

: 원하는 파일을 원하는 위치에 파일을 복사하기. 사본

$ cp [옵션] [원본파일명] [목적 파일명 / 디렉토리명]

# TIP # 해당 명령어를 쓰면 원본파일이나 폴더의 소유자, 그룹소유자, 권한, 시간정보 등을 그대로 유지됩니다.

   $ cp -rp dir1 dir2

옵션 

자주 사용하는 옵션은 -r -p -f 이다. 나머지 옵션은 필요에 따라 man이나 help를 활용하여 사용하면 된다.

  • -r : 보통 디렉토리를 복사할 때 안에 내용이 있으면 복사되지 않는다. 이 경우 하위 디렉토리를 포함한 모든 디렉토리를 복사한다
  • -p : 파일이나 디렉토리를 복사하면 복사하는 사용자의 기본 소유권, 퍼미션이 새로 지정되는데 원본의 모든 속성을 그대로 가지고 복사한다.
  • -f : 복사할 때 덮어쓰기 제한 등이 걸려있을 때 강제로 복사한다.
  • -a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.
  • -b : 복사하고자 하는 파일이 동일한 이름으로 이미 그 위치에 존재하고 있을 경우, 덮어쓰기 또는 원본을 지우고 복사할 경우에 원본파일의 복사본을 만든다.
  • -f : 복사대상파일이 이미 그 위치에 존재한다면 파일을 지우고 복사한다. 강제로 복사한다.
  • -i : 복사대상파일이 이미 그 위치에 존재한다면 덮어쓸 것인가를 사용자에게 확인하고 복사한다.
  • -P : 복사대상이 되는 원본파일이 디렉토리경로와 함게 지정되었을 경우에 지정된 디렉토리경로를 그대로 복사한다.
  • -u : 복사되는 원본파일의 이름과 동일한 파일이 대상위치에 존재할 경우에 원본파일과 변경날짜를 비교하여 최신파일일 경우에 복사하지 않는 옵션이다. 즉 원본파일이 목적파일 보다 최신 파일일 경우에만 복사하는 옵션이다.
  • -r : 복사대상이 하위디렉토리와 파일들을 가지고 있을때 모두 동일하게 복사하는 옵션이다.
  • -S : 원본파일과 동일한 이름의 파일이 이미 존재할 경우에 백업파일을 생성하지만, 백업파일의 끝에 붙여질 접미사(확장자)를 원하는 이름으로 지정하는 옵션이다.
  • -p : 복사되어 새로 생성되는 파일이 원본파일과 동일한 모드, 소유자, 시간정보를 가지도록 하는 옵션이다.