cpx, Linux cp의 더 빠르고 현대적인 대체품으로 소개됨
cpx라는 새로운 Rust 기반 도구는 Linux에서 전통적인 cp 명령어에 대한 현대적인 대안을 제공하며, 병렬 복사, 진행률 표시줄, 재개 지원 및 구성 가능한 기본 설정을 추가합니다.
우리 모두 알다시피, 리눅스에서 파일 복사는 오랫동안 고전적인 cp 명령어에 의존해 왔으며, 이 명령어는 여전히 신뢰할 수 있지만 긴 작업이나 복잡한 작업에 대해서는 피드백이 거의 없고 제어 능력이 제한적입니다.
이를 해결하기 위해, cpx라는 유망한 새로운 Rust 기반 명령어 도구가 등장했으며, 성능, 가시성 및 구성 가능성에 중점을 두고 동일한 작업을 수행하도록 설계된 대안으로 사용됩니다.
이는 대규모 디렉터리 트리, 중단된 전송, 또는 상세한 진행 상황 보고가 필요한 상황에서 표준 도구 사용이 불편할 때를 대상으로 합니다. 이 프로젝트는 현재 Linux 전용이며, 복사 처리량과 신뢰성을 향상시키기 위해 최신 커널 기능을 활용합니다.
프로젝트에서 발표한 벤치마크에 따르면, 대용량 파일 세트에서 cp보다 최대 네다섯 배 빠른 복사 시간이 나타났습니다. 이제 cpx의 주요 특징을 살펴보겠습니다.
- 병렬 파일 복사:
cpx는 여러 복사 작업을 동시에 수행합니다. 사용자는 병렬 수준을 조절할 수 있어, 이 도구가 빠른 스토리지와 멀티코어 시스템을 보다 효과적으로 활용할 수 있습니다. - 진행 상황 보고: 이 도구에는 복사의 실시간 상태를 보여주는 내장 진행 표시줄이 포함되어 있습니다. 진행 상황 출력은 사용자 정의가 가능하며, 전역적으로 또는 프로젝트별로 설정할 수 있습니다.
- 재개 가능한 전송: 중단된 복사 작업은 체크섬 검증을 사용하여 나중에 다시 시작할 수 있으며, 이미 복사된 파일은 자동으로 건너뜁니다.
- 제외 패턴:
cpx는.gitignore와 유사한 제외 규칙을 지원하여 사용자가 버전 관리 메타데이터, 빌드 출력물 또는 임시 파일과 같은 파일이나 디렉터리를 생략할 수 있도록 합니다. 제외 규칙은 명령줄이나 구성 파일에서 정의할 수 있습니다. - 지속적인 구성: 복사 동작의 기본값은 프로젝트, 사용자 또는 시스템 수준의 구성 파일에 저장할 수 있습니다. 설정에는 재귀, 병렬 처리, 진행률 표시 방식, reflink 사용 및 속성 유지가 포함됩니다.
- 리눅스 전용 파일시스템 기능: 이 도구는 확장 속성, SELinux 컨텍스트 유지, 타임스탬프, 소유권, 하드 링크, 그리고 지원되는 파일시스템에서 선택적 복사-쓰기 리플링크를 지원합니다.
- 유연한 복사 동작:
cpx는 상호작용식 덮어쓰기, 백업, 심볼릭 링크 및 하드 링크 처리, 속성 전용 복사, 대상 생성 또는 교체 방법에 대한 세밀한 제어 옵션을 제공합니다.
설치는 매우 간단하며, 셸 스크립트를 통해 가능합니다. scp를 시작하려면, 다음을 실행하세요:
curl -fsSL https://raw.githubusercontent.com/11happy/cpx/main/install.sh | bashmacOS와 Windows 지원이 프로젝트 로드맵에 나와 있지만, 현재 릴리스는 Linux에만 집중되어 있습니다. 자세한 내용은 도구의 GitHub 페이지를 참조하세요.

