>  기사  >  운영 및 유지보수  >  리눅스에서 복사 명령은 무엇입니까

리눅스에서 복사 명령은 무엇입니까

青灯夜游
青灯夜游원래의
2022-05-09 16:50:0553172검색

Linux의 복사 명령은 "cp"입니다. cp 명령은 주로 파일과 디렉터리를 복사하는 데 사용됩니다. "cp [옵션] 소스 파일 대상 파일" 구문은 특정 파일이나 디렉터리에 동시에 하나 이상의 소스 파일이나 디렉터리를 복사할 수 있습니다. 옵션을 사용하면 전체 디렉토리뿐만 아니라 이전 파일과 새 파일을 비교하고 업그레이드하는 등의 기능도 수행할 수 있습니다.

리눅스에서 복사 명령은 무엇입니까

이 튜토리얼의 운영 환경: CentOS 6 시스템, Dell G3 컴퓨터.

Linux의 복사 명령은 "cp"입니다.

cp의 정식 영어 이름은 "copy file"이며 중국어로 파일을 복사한다는 뜻입니다.

cp 명령은 주로 파일과 디렉터리를 복사하는 데 사용됩니다. 하나 이상의 소스 파일이나 디렉터리를 지정된 대상 파일이나 디렉터리에 복사할 수 있습니다.

cp 명령의 기본 형식은 다음과 같습니다.

cp [选项] 源文件 目标文件

옵션:

  • -d, -p 및 -r 옵션 세트와 동일합니다.

  • -d: 소스 파일이 소프트 링크인 경우(유효하지 않음) 하드 링크), 복사된 대상 파일도 소프트 링크입니다.

  • -i: 대상 파일이 이미 존재하는 경우 덮어쓸 것인지 묻습니다.

  • -l: 대상 파일을 생성합니다. 소스 파일을 복사하는 대신 소스 파일의 하드 링크 파일로 생성

  • -s: 소스 파일을 복사하는 대신 소스 파일의 소프트 링크 파일로 생성합니다. : 복사 후 대상 파일은 소스 파일의 속성(소유자, 소유권 그룹, 권한 및 시간 포함)을 유지합니다.

  • -r: 재귀 복사, 디렉터리 복사에 사용됨

  • -u: 대상 파일이 원본 파일과 다른 경우 이 옵션을 사용하여 대상 파일을 업데이트합니다. 이 옵션은 파일 업그레이드 및 백업에 사용할 수 있습니다.

  • 소스 파일이 여러 개 있을 수 있다는 점에 유의해야 하지만, 이 경우 대상 파일은 디렉터리여야 합니다.
참고: 특정 옵션을 사용하면 cp 명령은 전체 디렉터리를 복사하고 두 파일의 이전 파일과 새 파일을 비교하여 업그레이드할 수도 있습니다.

cp 명령어 사용 예:

【예제 1】cp 명령어의 기본 사용법

  • cp 명령어는 파일과 디렉터리를 모두 복사할 수 있습니다. 먼저 파일을 복사하는 방법을 살펴보겠습니다. 예를 들어

    [root@localhost ~]# touch cangls
    #建立源文件
    [root@localhost ~]# cp cangls /tmp/
    #把源文件不改名复制到 /tmp/ 目录下
  • 복사본의 이름을 변경해야 하는 경우 명령은 다음과 같습니다.
[root@localhost ~]# cp cangls /tmp/bols
#改名复制

복사 대상 위치에 동일한 이름의 파일이 이미 존재하는 경우, cp 명령은 기본적으로 "cp -i"의 별칭을 실행하기 때문에 덮어쓸 것인지 묻는 메시지가 표시됩니다. 예:

[root@localhost ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
#目标位置有同名文件,所以会提示是否覆盖

다음으로 디렉토리를 복사하는 방법을 살펴보겠습니다. "-r" 옵션을 사용하여 디렉토리를 복사합니다. 예:

[root@localhost ~]# mkdir movie
#建立测试目录
[root@localhost ~]# cp -r /root/movie/ /tmp/
#目录原名复制

[예제 2] 소프트 링크 파일 복사

  • 소스 파일이 일반 파일이 아닌 소프트 링크 파일인 경우 속성을 지정할 수 있습니다. 소프트 링크가 복사되나요? 시도해 보겠습니다.

    [root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
    #建立一个测试软链接文件/tmp/cangls_slink
    [root@localhost ~]# ll /tmp/cangls_slink
    lrwxrwxrwx 1 root root 12 6 月 14 05:53 /tmp/cangls_slink -> /root/cangls
    #源文件本身就是一个软链接文件
    [root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
    #复制软链接文件,但是不加"-d"选项
    [root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
    #复制软链接文件,加入"-d"选项
    [root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
    -rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
    #会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
    lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
    #而如果加入了"-d"选项,则会复制软链接文件
  • 이 예에서는 소프트 링크 파일을 복사할 때 "-d" 옵션을 사용하지 않으면 "-d" 옵션이 있는 경우에만 cp 명령이 소프트 링크 파일 대신 소스 파일을 복사하는 것을 보여줍니다. 추가하면 소프트링크 파일이 복사됩니다. 하드 링크에는 "-d" 옵션이 유효하지 않습니다.

【예제 3】소스 파일 속성 복사 유지

  • 복사 명령을 실행한 후 대상 파일의 시간이 소스 파일의 시간이 아닌 복사 명령의 실행 시간이 되는 것을 발견했습니다. 예를 들면 다음과 같습니다.

    [root@localhost ~]# cp /var/lib/mlocate/mlocate.db /tmp/
    [root@localhost ~]# ll /var/lib/mlocate/mlocate.db
    -rw-r-----1 root slocate2328027 6月 14 02:08/var/lib/mlocate/mlocate.db
    #注意源文件的时间和所属组
    [root@localhost ~]#ll /tmp/mlocate.db
    -rw-r----- 1 root root2328027 6 月 14 06:05/tmp/mlocate.db
    #由于复制命令由root用户执行,所以目标文件的所属组为了root,而且时间也变成了复制命令的执行时间
  • 백업 및 로그 백업을 수행할 때 이러한 파일의 시간이 중요한 매개 변수가 될 수 있으므로 "-p" 옵션을 실행해야 합니다. 이 옵션은 소유자, 그룹 및 시간을 포함한 소스 파일의 속성을 유지합니다. 예:
[root@localhost ~]# cp -p /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
#使用"-p"选项
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
#源文件和目标文件的所有属性都一致,包括时间

앞에서 "-a" 옵션은 "-d, -p, -r" 옵션과 동일하다고 이미 언급했습니다. 따라서 "-a" 옵션을 사용하면 소스 파일의 소유자, 그룹, 시간 및 소프트 링크를 포함하여 대상 파일과 소스 파일의 모든 속성이 일관됩니다. "-d, -p, -r" 옵션 대신 "-a" 옵션을 사용하는 것이 더 편리합니다.

【예 4】 "-l" 및 "-s" 옵션

  • "-l" 옵션을 사용하면 대상 파일이 소스 파일에 대한 하드 링크로 생성됩니다. -" s" 옵션을 사용하면 대상 파일이 소스 파일에 대한 소프트 링크로 생성됩니다.

  • 이 두 옵션은 "-d" 옵션과 다릅니다. "d" 옵션을 사용하려면 대상 파일이 소프트 링크로 복사되기 전에 소스 파일이 소프트 링크여야 합니다. " 및 "-s" 옵션 파일은 일반 파일이어야 하며 대상 파일을 하드 링크 또는 소프트 링크로 직접 복사할 수 있습니다. 예:
[root@localhost ~]# touch bols
#建立测试文件
[root@localhost ~]# ll -i bols
262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
#源文件只是一个普通文件,而不是软链接文件
[root@localhost ~]# cp -l /root/bols /tmp/bols_h
[root@localhost ~]# cp -s /root/bols /tmp/bols_s
#使用"-l" 和"-s"选项复制
[root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
#目标文件 /tmp/bols_h 为源文件的硬链接文件
932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
#目标文件 /tmp/bols_s 为源文件的软链接文件

관련 권장 사항: "

Linux 비디오 튜토리얼

"

위 내용은 리눅스에서 복사 명령은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:리눅스 fd가 뭐야?다음 기사:리눅스 fd가 뭐야?