Rust coreutils: 스크립트 호환성 및 GNU 대안
Ubuntu 26.10는 또한 이전에 유지된 cp, mv 및 rm 명령을 Rust 기반 uutils로 마이그레이션합니다. 이름은 익숙하지만 비정상적인 옵션, 오류 텍스트 또는 종료 동작에 의존하는 스크립트는 확인이 필요합니다. 26.10 릴리스 노트 에서 전환을 확인합니다.
현재 구현 검사
type -a cp mv rm
cp --version
mv --version
rm --version먼저 type -a에서 별칭, 셸 함수 또는 사용자 정의 PATH 항목을 확인한 다음 버전 출력을 검사하세요. 컨테이너에는 자체 사용자 공간이 있습니다. 호스트를 업그레이드해도 컨테이너 내부의 명령이 자동으로 변경되지 않습니다.
임시 디렉터리에서 기본 워크플로 테스트
이 예에서는 작업 파일을 건드리지 않고 테스트 파일을 만들고 이동합니다.
coreutils_check_dir=$(mktemp -d)
printf 'coreutils check\n' > "$coreutils_check_dir/source.txt"
cp "$coreutils_check_dir/source.txt" "$coreutils_check_dir/copy.txt"
cmp "$coreutils_check_dir/source.txt" "$coreutils_check_dir/copy.txt"
mv "$coreutils_check_dir/copy.txt" "$coreutils_check_dir/moved.txt"
rm "$coreutils_check_dir/moved.txt"
ls -la "$coreutils_check_dir"종료 상태가 0인 cmp에서 출력이 없으면 내용이 일치함을 의미합니다. 이는 기본적인 확인일 뿐이며 백업 또는 배포 스크립트가 호환된다는 증거는 아닙니다. 검사를 위해 디렉터리를 보관하고 나중에 수동으로 제거합니다.
이 스크립트의 우선순위를 지정하세요
- 오류 메시지를 구문 분석하는 스크립트: 종료 코드 및 명시적 파일 검사를 선호합니다.
- 재귀적 복사, 심볼릭 링크 및 메타데이터 보존: 샘플 데이터를 사용하여 콘텐츠, 권한 및 링크 대상을 비교합니다.
- 예약된 작업 및 CI: 실제 사용자, PATH 및 작업 디렉터리로 테스트합니다.
- 파일 삭제 또는 덮어쓰기 작업: 일회용 복사본을 사용하고 복구 절차를 먼저 확인하세요.
대상 시스템과 원래 환경에서 동일한 입력을 실행합니다. 명령, 종료 코드, stdout 및 stderr을 기록하십시오. 메타데이터가 중요한 경우 샘플 파일에 stat을 사용하세요.
GNU 대안
Ubuntu는 여전히 GNU 유틸리티를 제공합니다. 공식 문서에서는 gnu과 같은 gnuls 접두사가 붙은 명령과 coreutils-from-gnu와 coreutils-from-uutils 간 전환에 대해 설명합니다. 공식 Rust-coreutils 지침 을 참조하세요.
먼저 특정 스크립트 문제를 수정하거나 격리하세요. 시스템 전체 스위치가 필요한 경우 공식 명령을 읽고 APT의 계획된 변경 사항을 검토하세요. 이는 기본 시스템 패키지입니다. /usr/bin의 파일을 덮어쓰거나 파일을 대체하기 위해 심볼릭 링크를 만드는 것을 피하세요.