logo

Linux/Unix의 cp 명령 | 리눅스 복사 파일

'cp'는 복사를 의미합니다. 'cp' 명령은 파일이나 디렉터리를 복사하는 데 사용됩니다.

cp 명령 소개

cp 명령은 디렉터리와 파일을 복사하는 데 사용됩니다. 이 명령에는 파일을 다른 파일에 복사하거나, 여러 파일을 디렉터리에 복사하거나, 전체 디렉터리를 다른 디렉터리에 복사하기 위해 프로그램에 표시되는 인수 유형으로 표시되는 세 가지 기본 작업 모드가 포함되어 있습니다.

또한 유틸리티는 구현된 작업을 자세히 설명하기 위해 여러 명령줄 옵션 플래그를 허용합니다. 두 가지 기본 사양은 GNU cp와 POSIX cp입니다. GNU cp에는 POSIX 버전에 대한 다양한 추가 옵션이 포함되어 있습니다. 또한 이 명령은 EFI 셸 내에서 사용할 수 있습니다.

cp 명령의 작동 모드

cp 명령에는 세 가지 기본 작동 모드가 포함되어 있습니다. 이러한 모드는 호출 중인 프로그램에 표시되는 인수의 개수와 유형에 따라 완료됩니다.

자바 system.out.println
  • 프로그램은 첫 번째 파일의 내용을 두 번째 파일에 복사할 수 있으며, 프로그램에 파일에 대한 두 개의 경로 이름 인수가 포함되어 있는 경우 필요한 경우 두 번째 파일을 만들 수 있습니다.
  • 프로그램은 모든 소스 파일을 원하는 디렉터리에 복사할 수 있으며, 프로그램에 파일의 하나 이상의 경로 이름 인수가 포함되어 있고 디렉터리에 대한 경로 인수를 추구하는 경우 모든 파일을 아직 사용할 수 없게 만듭니다.
  • cp 명령은 소스 디렉터리 내의 모든 파일을 원하는 디렉터리에 복사하여 프로그램의 인수가 두 디렉터리의 경로 이름일 때 필요한 디렉터리나 파일을 만들 수 있습니다. 이 작업 모드에는 재귀 디렉터리의 복사를 나타내기 위해 추가 옵션 플래그가 필요합니다. 소스는 대상에 복사되고, 대상 디렉터리가 이미 사용 가능한 경우 대상이 존재하지 않으면 새 디렉터리가 만들어집니다.

cp 명령의 옵션

옵션 설명
--아카이브, -a 이는 -dR --preserve=all과 동일합니다.
--속성만 파일의 데이터는 복사하지 않고 속성만 복사합니다.
-비 이는 백업과 유사하지만 어떤 인수도 허용하지 않습니다.
--백업[=제어] 기존의 모든 대상 파일을 백업합니다.
--복사 내용 재귀적일 경우 특수 파일 내용을 복사합니다.
-디 --no-dereference --preserve=links와 동일합니다.
--강제, -f 기존 대상 파일을 열 수 없으면 해당 파일을 삭제하고 다시 시도하십시오(-n 플래그도 사용되는 경우 이 옵션은 사용되지 않습니다).
--대화형, -i 덮어쓰기 전에 확인을 요청합니다(이전 -n 플래그를 재정의함).
-시간 SOURCE에서는 명령줄 기호 링크를 따릅니다.
--링크, -l 복사가 아닌 하드 링크 파일을 지정합니다.
--역참조, -L SOURCE에서는 항상 기호 링크를 따릅니다.
--no-clobber, -n 기존 파일을 덮어쓰지 않습니다(-i 플래그를 재정의함).
--역참조 없음, -P SOURCE에서는 기호 링크를 따르지 않습니다.
-피 --preserve=mode, 타임스탬프, 소유권과 동일합니다.
--보존[=ATTR_LIST] 설명된 속성을 유지합니다. 가능한 경우 추가 속성: all, xattr, link, context.
--no-preserve=ATTR_LIST 설명된 속성은 유지되지 않습니다.
--부모 디렉터리 아래에서는 전체 소스 파일 이름을 사용합니다.
--재귀, -r, -R 디렉터리를 재귀적으로 복사합니다.
--reflink[=언제] CoW/클론 복사본을 제어합니다.
--제거 대상 기존 대상 파일을 열려고 하기 전에 모든 기존 대상 파일을 제거합니다(--force와 반대).
--sparse=언제 스파스 파일의 설정을 제어합니다.
--문자열 후행 슬래시 모든 SOURCE 인수에서 후행 슬래시를 제거합니다.
--기호-링크, -s 복사하는 대신 심볼릭 링크를 만듭니다.
--suffix=SUFFIX, -S 이는 일반 백업 접미사를 재정의합니다.
--target-directory=디렉토리, -t 모든 SOURCE 인수를 DIRECTORY에 복사합니다.
--no-target-디렉토리, -T DEST를 일반 파일로 간주합니다.
--업데이트, -u SOURCE 파일이 대상 파일보다 최신이거나 대상 파일이 지정되지 않은 경우 복사됩니다.
--상세, -v 수행 중인 작업을 지정합니다.
--하나의 파일 시스템, -x 파일 시스템에 유지됩니다.
-와 함께 대상 파일의 SELinux 보안 컨텍스트를 기본 유형으로 설정합니다.
--컨텍스트[=CTX] -Z와 동일하거나 CTX가 언급된 경우 SMACK 또는 SELinux 보안 컨텍스트를 CTX로 설정합니다.
--돕다 도움말 메뉴가 표시되고 종료됩니다.
--버전 버전 세부 정보를 제공하고 종료됩니다.

Sparse SOURCE 파일은 저렴한 휴리스틱으로 찾아내며, 관련 DESR 파일은 기본적으로 Sparse로 생성됩니다. 그것은 당신이 선택한 행동이다. --sparse=자동 . 우리는 설명할 수 있습니다 --sparse=항상 SOURCE 파일에 0바이트의 긴 순서가 포함되어 있는 경우 희소한 DEST 파일을 만듭니다. 우리도 신청할 수 있어요 --sparse=안함 스파스 파일의 설정을 제한합니다.

만약에 --reflink[=항상] 언급된 경우, 변경된 경우에만 데이터 블록이 복사되는 경량 복사를 구현하십시오. 불가능하거나 그럴 경우 --reflink=자동 언급되면 복사본이 실패하고 표준 복사본으로 대체됩니다. 우리도 신청할 수 있어요 --reflink=절대로 안함 표준 사본이 구현되도록 보장합니다.

동일한 디렉토리 구문에 파일을 복사하려면 다음과 같습니다.

 cp 

리눅스 파일 cp

위의 스냅샷에서 우리는 '다큐' 그리고 그것을 다음과 같이 명명했습니다. '새로운' . 만일의 경우, (우리의 경우에는 'newdocu'입니다.) 이미 존재하는 경우 이전 파일을 덮어쓰게 됩니다.

다른 디렉터리에 있는 파일을 복사하려면

대상 디렉터리의 경로를 언급해야 합니다.

아래 스냅샷에는 이전에는 '텍스트' 파일이 없었습니다. 명령을 내린 후, '텍스트' 파일이 대상 디렉터리에 복사되었습니다. '데스크탑' .

리눅스 파일 cp

리눅스 cp -r

옵션 '아르 자형' 복사 명령을 사용하면 소스 디렉터리의 모든 내용을 포함하는 디렉터리를 대상 디렉터리로 복사할 수 있습니다.

통사론:

 cp -r 

예:

 cp -r library /home/sssit/Documents 

리눅스 cp -r

위의 예에서는 디렉토리를 복사했습니다. '도서관' 대상 디렉토리로 /home/sssit/문서 . 여기에서는 해당 내용을 포함한 '라이브러리' 디렉터리의 모든 내용이 대상 디렉터리에 복사되었습니다.

Linux 여러 파일 또는 디렉터리 복사

여러 파일이나 디렉터리를 대상 디렉터리에 한 번에 복사할 수 있습니다. 이 경우 대상은 디렉터리여야 합니다. 여러 파일을 복사하려면 다음을 사용할 수 있습니다. 와일드카드 (cp *.extension) 동일한 패턴을 갖습니다.

3분기

통사론:

 cp *. 

예:

 cp *.txt /home/sssit/Documents 

Linux는 여러 파일을 복사합니다.

위의 예에서는 동일한 확장자를 가진 파일(file1, file2, file3)을 복사했습니다. '.txt' 문서 디렉토리에.

리눅스 CP --백업

복사하려는 파일이 대상 디렉터리에 이미 존재하는 경우 이 명령을 사용하여 기존 파일을 백업할 수 있습니다.

통사론:

 cp --backup 

예:

 cp --backup file2.txt /home/sssit/Downloads 

리눅스 파일 CP 백업

위에서 볼 수 있듯이, '파일2.txt' 대상 디렉터리에 이미 존재합니다. 따라서 우리는 이 파일의 백업을 생성하여 동일한 디렉터리(동일한 이름을 가짐)에 복사했습니다.

이제 'Downloads'인 대상 디렉터리에는 동일한 이름을 가진 두 개의 파일(즉, 'file2.txt')이 있습니다.

리눅스 cp -i

cp '-i' 옵션을 사용하면 파일을 덮어쓰기 전에 한 번 확인할 수 있습니다.

마우스 휠이 제대로 스크롤되지 않음

통사론:

 cp -i 

예:

 cp -i file3.txt /home/sssit/Desktop 

리눅스 cp -i

보시다시피 파일 덮어쓰기 권한을 요청하고 있습니다. '파일3.txt' 이 파일이 대상 디렉터리에 이미 존재하기 때문입니다. 이제 다음을 누를 수 있습니다. 그리고 파일을 덮어쓰고 N 파일을 덮어쓰지 않도록 합니다.

리눅스 cp -l

해당 파일을 복사하는 대신 파일의 하드 링크를 생성하려면 'l' 옵션을 사용할 수 있습니다.

메모: 파일의 하드 링크를 생성할 때 두 파일의 inode 번호는 동일하게 유지됩니다. 복사하는 동안에는 inode 번호가 변경됩니다.

통사론:

 cp -l 

예:

 cp -l file1.txt usr/ 

리눅스 파일 cp -l

여기서는 파일의 하드 링크를 생성했습니다. '파일1.txt' ~에 'usr' . 두 파일의 Inode 번호는 동일합니다.

리눅스 cp -p

cp '-p' 옵션은 파일의 속성과 속성을 보존하는 데 사용됩니다. 원하는 대로 선택한 속성을 보존할 수도 있습니다.

통사론:

 cp -p 

예:

 cp -p file2.txt usr/ 

리눅스 cp -p

이제 위 그림에서 두 파일(원본 파일과 복사 파일)을 일치시킬 수 있으며 둘 다 동일한 속성을 갖습니다.

리눅스 cp -u -v

cp -u -v 명령은 대상 파일이 누락되었거나 존재하지 않는지 확인하려는 경우에 사용됩니다.

통사론:

레카 나이
 cp -u -v 

예:

 cp -u -v docc file1.txt /home/sssit/Downloads/ 

리눅스 cp -u -v

위 사진을 보면 파일이 2개 있는 것을 알 수 있습니다. '샤워' 그리고 '파일1.txt' . 이제 이 두 파일을 'Download' 디렉터리에 복사하려고 합니다. 그러나 우리는 '다운로드' 디렉토리에 'file1.txt' 파일이 이미 존재한다는 것을 모릅니다.

명령을 내리다 'cp -u -v' 기존 파일(file1.txt)을 자동으로 처리하고 덮어쓰지 않습니다.

이 명령은 큰 파일을 복사할 때 유용합니다.