this post was submitted on 30 Jan 2026
36 points (92.9% liked)

Linux

11522 readers
601 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

As we all know, file copying on Linux has long relied on the classic cp command, which remains reliable but offers little feedback and limited control over long or complex operations.

To address this, a promising new Rust-based command-line tool called cpx emerge, designed as an alternative rather than a replacement, that approaches the same task with a focus on performance, visibility, and configurability.

It targets scenarios where large directory trees, interrupted transfers, or the need for detailed progress reporting make standard tools less convenient to use. The project is currently Linux-only and leverages modern kernel features to improve copy throughput and reliability.

top 25 comments
sorted by: hot top controversial new old
[–] tomenzgg@midwest.social 31 points 8 hours ago (2 children)

New Linux util.

looks inside

Non-copyleft license

I appreciate that it's not trying to replace cp but the lack of copyleft is always disconcerting.

[–] The_Decryptor@aussie.zone 1 points 21 minutes ago

What's the risk here though, a company like Amazon makes a closed source version of it?

If it was a file format library, or something like a web server I'd get it. But stuff like cp are effectively just userspace wrappers around kernel APIs.

[–] Badabinski@kbin.earth 7 points 7 hours ago (1 children)

yeah, like, supposedly it can be hard to use GPL with some rust dependencies, but the MPL is right there as a decent compromise.

[–] protogen420@lemmy.blahaj.zone 1 points 3 hours ago (1 children)

how can it be hard? permissive licenses are compatible to the GPL, the opposite not though

[–] Badabinski@kbin.earth 2 points 2 hours ago (1 children)

Static linking makes things difficult. I'm not sure what the details are, that's just what I've heard from Rust developers.

[–] The_Decryptor@aussie.zone 1 points 15 minutes ago

Because of static linking, a single GPL dependency turns the entire resulting binary into a GPL licensed one, so yeah just use something like the MPL in that case (Or EUPL, which I hear is similar)

LGPL has the same issue, since it only provides an exception for dynamic linking. But honestly that's all an issue for lawyers and judges to sort out (I bet you could win in court with an argument that dynamically linking to GPL is actually fine).

[–] scroll_responsibly 8 points 7 hours ago (1 children)
[–] DmMacniel@feddit.org 1 points 3 hours ago

Welcome to rust where MIT is just recommended yet everyone does use it for licensing.

[–] eleijeep@piefed.social 11 points 9 hours ago (4 children)
[–] sin_free_for_00_days@sopuli.xyz 2 points 3 hours ago

I've had cp aliased to rsync with my flags for years. It seems like a lot of newcomers try to "fix" stuff before they really understand what's available. Or they just like to play around with different programming languages. Which is fine, but usually it's not really interesting to me.

[–] onlinepersona@programming.dev 9 points 8 hours ago (2 children)

It's a damn pain to remember all the flags. How many flags can a program friggin have? I'm always afraid that some flag I enter will reverse the sync and delete everything in the source folder because the target is empty.

I use rsync only when all params have been reseasrched and tested. cpx presumably just requires cpx - r source target instead of 5 rsync flags.

[–] victorz@lemmy.world 7 points 8 hours ago (1 children)

What 5 flags did rsync need? I always just do -av and go about my day. And the -v is kinda optional.

[–] onlinepersona@programming.dev 2 points 1 hour ago

How do you get the progress bar?

[–] frongt@lemmy.zip 6 points 8 hours ago (2 children)

The only one you need is -a. -avx if you want verbose and compression.

[–] onlinepersona@programming.dev 1 points 59 minutes ago* (last edited 58 minutes ago)

I just looked it up and - x means one filesystem. But does - v give you a progress bar or just a lost of stuff copied?

IIRC rsync also treats the trailing slash in a special manner that I always have to look up.

[–] FauxLiving@lemmy.world 2 points 6 hours ago

--progress=info2 could be a bit shorter imo

[–] ptz@dubvee.org 8 points 9 hours ago

That's probably the next wheel some overzealous Rust dev will reinvent.

[–] cm0002@digipres.cafe 3 points 9 hours ago

Too many letters to type obvi! /s

[–] InternetCitizen2@lemmy.world 11 points 10 hours ago (3 children)

eza fd-find

Which other modernized tools to get and enjoy fam?

[–] artifex@piefed.social 15 points 10 hours ago (1 children)

So many things from the Modern UNIX tools repo!

My daily drivers are: lsd instead of ls - colors, icons, tree-view, more formatting, dust instead of du for better formatting, jq for viewing JSON, gtop instead of top just because it's so pretty

image

(I've aliased most of these, but there are a few toolchains that have broken)

[–] InternetCitizen2@lemmy.world 8 points 10 hours ago (1 children)

That dust is looking fine. I have been using btop myself.

[–] victorz@lemmy.world 3 points 8 hours ago (1 children)

I find btop's color schemes don't with well with changing between light and dark mode in the terminal when theme background is turned off.

[–] InternetCitizen2@lemmy.world 1 points 7 hours ago

This is very true. I find flat-remix-light to be somewhat decent (still pretty bad) among the options.

[–] somegeek@programming.dev 9 points 10 hours ago

Oof zoxide is my baby. One of the best new utils.

also ripgrep and fzf.

check out this blog post I wrote about cool TUI and CLI tools I use. Not all of them are "modernized" but you'll find some cool things there.

https://alavi.me/blog/cool-cli-tui/

[–] JamonBear@sh.itjust.works 4 points 10 hours ago

dust and ripgrep