Rust coreutils: script compatibility and GNU alternatives
Ubuntu 26.10 also migrates the previously retained cp, mv and rm commands to Rust-based uutils. Names stay familiar, but scripts relying on unusual options, error text or exit behavior need verification. The 26.10 release notes confirm the transition.
Inspect the current implementation
type -a cp mv rm
cp --version
mv --version
rm --versionCheck type -a first for aliases, shell functions or custom PATH entries, then inspect version output. Containers have their own user space: upgrading the host does not automatically change commands inside a container.
Test a basic workflow in a temporary directory
This example creates and moves test files without touching your working files:
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"No output from cmp with exit status 0 means the contents match. This is only a basic check, not proof that a backup or deployment script is compatible. Keep the directory for inspection and remove it manually afterward.
Prioritize these scripts
- Scripts parsing error messages: prefer exit codes and explicit file checks.
- Recursive copies, symbolic links and metadata preservation: compare contents, permissions and link targets using sample data.
- Scheduled jobs and CI: test with the real user, PATH and working directory.
- Tasks deleting or overwriting files: use disposable copies and confirm recovery procedures first.
Run the same input on the target system and the original environment. Record the command, exit code, stdout and stderr. Use stat on sample files when metadata matters.
GNU alternatives
Ubuntu still provides GNU utilities. Official documentation describes gnu-prefixed commands such as gnuls and switching between coreutils-from-gnu and coreutils-from-uutils. See the official rust-coreutils instructions .
First fix or isolate the specific script issue. If a system-wide switch is necessary, read the official commands and review APT’s planned changes. These are base-system packages; avoid overwriting files in /usr/bin or inventing symlinks to replace them.
Next: backup and recovery and release selection.