답변:
한 가지 중요한 차이점은 cp가 대상 파일을 자르고 소스에서 대상 파일로 데이터 복사를 시작한다는 것입니다.
반면에 install은 대상 파일을 먼저 제거합니다.
대상 파일이 이미 사용중인 경우 cp
새 파일 이 있는 경우 해당 파일을 사용하는 사람에게 나쁜 일이 발생할 수 있기 때문에 중요 합니다. 예를 들어 실행중인 실행 파일을 덮어 쓰지 못할 수 있습니다. 기존 프로세스에서 읽기 / 쓰기 작업이 많은 데이터 파일을 자르면 꽤 이상한 동작이 발생할 수 있습니다. 대상 파일을 먼저 제거하면 설치와 마찬가지로 정상적으로 진행됩니다. 모든 프로세스가 해당 파일을 닫을 때까지 제거 된 파일이 실제로 제거되지 않습니다.
기술적 차이 install -c
와 cp
즉 install
세트에게 상기 표적 파일의 권한 rwxr-xr-x
. cp
소스 파일의 권한에서 umask를 뺀 권한을 유지합니다. 이러한 기본 동작은 다른 상황에서 유용합니다. 분명히, 현재 cp
와 install
제공 하는 모든 옵션을 통해 기능이 수렴되었습니다.
요즘 install
은 일반적으로 cp
다른 곳 에서 makefile에 사용됩니다 . 일부 운영 체제 또는 설치 시스템을 사용하면 install
프로그램에 연결 하여 설치된 패키지를 등록 할 수 있기 때문에 이러한 구분이 유용 합니다. 현대의 패키지 관리 시스템은 이런 종류의 구식을 사용하지 않지만 일부 사람들은 여전히 사용합니다. 또한 동일한 이동으로 대상 파일 권한을 설정할 수있는 가능성이 매우 편리합니다.
기본적으로 install
유틸리티는 환상적 cp
입니다. 그러나 도구가 구체적으로 설치되므로 몇 가지 기능이 포함되어 cp
있지 않습니다. 내 /usr/bin/install
GNU의로 coreutils에서뿐만 아니라 복사,뿐만 아니라 인수 플래그 (절약 등의 파마 / 소유권을 변경할 수 있습니다 chgrp
, chown
, chmod
호출) 스트립 디버그 정보 (구원의 옵션 strip
호출) 또한 SELinux에 컨텍스트에 대한 몇 가지 모조.
소프트웨어 설치에 유용한 편리한 조치 만 제공합니다. 인생은 바뀌지 않으며, 모두 유용하며, 스크립트를 깔끔하게 만듭니다.
cp --remove-destination
GNU coreutils 도 참조하십시오 .