cpx: Alternatif Modern untuk cp di Linux yang Lebih Cepat dengan Rust

Bobby Borisov 30 Januari 2026 21:36 WIB Diperbarui: 28 Februari 2026 #Linux #Rust #CommandLine

Sebuah alat baris perintah baru berbasis Rust bernama cpx menawarkan alternatif modern untuk perintah cp tradisional di Linux, dengan fitur penyalinan paralel, bilah progres, dukungan resume, dan pengaturan default yang dapat dikonfigurasi.

Halo, saya Bobby. Sebagai pengguna Linux sejak zaman kuliah, saya sudah terbiasa dengan perintah-perintah klasik. cp adalah salah satu yang salah satu yang sering saya gunakanโ€”baik untuk backup, menduplikasi proyek, atau sekadar menyalin musik. Hasil dapat berbeda tergantung perangkat, versi paket, dan konfigurasi sistem. Tapi jujur, sering kali saya merasa seperti bekerja dalam kegelapan. Tidak ada indikator seberapa cepat prosesnya, apalagi kalau tiba-tiba copy berhenti di tengah jalan karena error atau Ctrl+C terlanjur tertekan. Rasanya frustrating, apalagi jika yang dicopy puluhan GB.

Makanya, ketika saya membaca tentang cpxโ€”sebuah alternatif modern untuk cp yang ditulis dalam Rustโ€”saya langsung tertarik. Apakah ini jawaban atas keluhan saya? Apakah benar bisa 4โ€“5 kali lebih cepat? Dan yang terpenting, apakah mudah digunakan? Dalam artikel ini, saya akan mengajak Anda menyelami cpx secara mendalam, dari instalasi, fitur-fitur kerennya, hingga perbandingan performa dengan cp klasik. Yuk, kita mulai petualangan ini! ๐Ÿš€

Apa, Siapa, Mengapa, Kapan, Di Mana, dan Bagaimana cpx?

Sebelum masuk ke teknis, mari kita jawab pertanyaan mendasar tentang cpx dengan pendekatan 5W+1H.

Apa itu cpx?

cpx adalah alat baris perintah (CLI) untuk menyalin file dan direktori, ditulis dalam bahasa pemrograman Rust. Ia dirancang sebagai alternatif modern dari perintah cp yang sudah ada sejak era Unix. Bedanya, cpx membawa fitur-fitur kekinian seperti penyalinan paralel, bilah progres real-time, kemampuan melanjutkan transfer yang terputus (resume), dan pola pengecualian ala .gitignore. Semua ini dikemas dalam satu biner kecil dan cepat.

Siapa di balik cpx?

cpx dikembangkan oleh seorang developer dengan nama panggilan 11happy (atau tim di belakangnya). Proyek ini dirilis di GitHub dengan lisensi MIT, sehingga siapa pun bisa berkontribusi. Komunitas pun sudah mulai aktif, misalnya dengan menyediakan paket untuk Arch Linux (AUR) dan Nix/NixOS. Jadi, ini bukan proyek iseng, tapi sudah dilirik oleh banyak pengguna.

Mengapa kita butuh cpx?

Perintah cp tradisional memang andal, tapi minim informasi. Saat menyalin ribuan file, kita hanya bisa menatap layar tanpa umpan balik. Belum lagi kalau prosesnya lambat karena hanya menggunakan satu thread. cpx hadir untuk menjawab kebutuhan akan transparansi, efisiensi waktu, dan ketahanan terhadap gangguan. Dengan penyalinan paralel, kita bisa memanfaatkan CPU multi-core dan storage cepat secara maksimal. Dengan fitur resume, kita bisa lanjutkan dari titik terakhir tanpa mengulang dari awal.

Kapan cpx tersedia?

Proyek ini mulai diperkenalkan ke publik sekitar akhir Januari 2026 (lihat tanggal artikel ini: 30 Januari 2026). Perkembangannya masih aktif, dengan roadmap mencakup dukungan untuk macOS dan Windows dalam waktu dekat. Jadi, ini adalah waktu yang tepat untuk mulai mencoba dan memberikan masukan.

Di mana bisa mendapatkan cpx?

Saat ini, cpx hanya tersedia untuk Linux (kernel 4.5+ direkomendasikan untuk fitur fast copy). Kode sumber dan biner rilis bisa diunduh dari repository GitHub resmi. Instalasi bisa dilakukan melalui berbagai cara: skrip otomatis, cargo install, paket komunitas, atau kompilasi dari sumber.

Bagaimana cara kerja cpx?

cpx menggunakan kemampuan multi-threading dan asynchronous di Rust (dengan bantuan library seperti rayon dan jwalk) untuk menjalankan beberapa operasi copy secara bersamaan. Ia juga memanfaatkan fitur kernel Linux seperti copy_file_range untuk mempercepat copy di dalam filesystem yang sama, serta mendukung reflink (copy-on-write) di filesystem seperti Btrfs atau XFS. Selain itu, cpx menyimpan metadata file yang sudah dicopy (ukuran, checksum) sehingga ketika proses diulang dengan opsi --resume, ia bisa melewati file yang sudah utuh.

Fitur-Fitur Unggulan yang Bikin Jatuh Hati

Mari kita bedah satu per satu fitur yang membuat cpx layak dicoba. Saya akan sertakan emoji dan ikon biar makin hidup.

Penyalinan Paralel (Parallel Copying)

Ini adalah fitur headliner. Dengan opsi -j (atau --parallel), Anda bisa menentukan berapa banyak operasi copy yang dijalankan bersamaan. Default-nya 4, tapi Anda bisa meningkatkannya sesuai kemampuan CPU dan I/O. Bayangkan menyalin ribuan file kecil; daripada menyalin satu per satu, cpx mengerjakan banyak sekaligus, sehingga total waktu berkurang drastis. Pada pengujian terhadap kode sumber Rust (sekitar 65 ribu file), cpx dengan 16 thread hanya butuh 1,09 detik, sementara cp membutuhkan 4,55 detik โ€” sekitar 4,17 kali lebih cepat! ๐Ÿ”ฅ

Progress Bar yang Cantik dan Informatif

Ini yang paling saya rindukan dari cp. cpx menampilkan bilah progres real-time yang menunjukkan persentase, kecepatan transfer (misal 45 MB/s), perkiraan waktu selesai, dan file yang sedang dicopy. Progress barnya bisa disesuaikan gayanya melalui konfigurasi (misal style = "detailed"). Berikut contoh tampilannya (dari proyek):

Contoh progress bar cpx yang menampilkan kecepatan dan file sedang dicopy

Resume Transfer yang Terputus

Pernah mengalami copy puluhan GB tiba-tiba berhenti karena error atau listrik padam? Dengan cpx --resume, Anda bisa melanjutkan dari titik terakhir. cpx memverifikasi checksum file yang sudah tercopy, dan melewatinya. Saat Anda menekan Ctrl+C, cpx akan menangani sinyal dengan baik dan memberikan petunjuk cara melanjutkan (misal: "To resume, use --resume"). Praktis banget!

Contoh penanganan Ctrl+C dan petunjuk resume

Pola Pengecualian (Exclude Patterns)

Seringkali kita tidak ingin menyalin folder tertentu seperti node_modules, .git, atau file sampah *.tmp. cpx mendukung pola pengecualian mirip .gitignore melalui opsi -e atau file konfigurasi. Contoh: cpx -r -e "node_modules" -e ".git" proyek/ backup/ akan menyalin semua isi proyek kecuali folder-folder itu. Ini sangat membantu untuk backup selektif.

Konfigurasi Persisten (TOML)

Anda bisa menyimpan pengaturan default di file konfigurasi TOML, baik di tingkat proyek (./cpxconfig.toml), user (~/.config/cpx/cpxconfig.toml), atau sistem (/etc/cpx/cpxconfig.toml). Dengan begitu, setiap kali menjalankan cpx, ia akan membaca preferensi Anda. Misalnya, Anda bisa set parallel = 8 dan exclude.patterns = ["*.log"] secara global. Tidak perlu lagi mengetik opsi berulang-ulang.

Dukungan Fitur Filesystem Linux

cpx mendukung preservasi atribut file seperti SELinux context, extended attributes (xattr), timestamp, kepemilikan, hard link, dan bahkan reflink (copy-on-write) di filesystem Btrfs/XFS. Opsi -p=all akan mempertahankan semua atribut, menjadikannya ideal untuk backup sistem atau migrasi data. Jadi, Anda tidak perlu khawatir kehilangan metadata penting.

Opsi Copy yang Fleksibel

Selain fitur di atas, ada banyak opsi lain seperti --interactive (konfirmasi sebelum menimpa), --backup (buat cadangan file tujuan), --attributes-only (hanya salin atribut, tidak isi data), dan pengaturan symlink/hardlink (misal -s relative untuk membuat symlink relatif). Semua bisa dikombinasikan sesuai kebutuhan.

Instalasi: Pasang cpx dalam Hitungan Menit

Instalasi cpx sangat mudah. Berikut beberapa metode yang bisa Anda pilih:

1. Instalasi Otomatis dengan Skrip (Termudah)

curl -fsSL https://raw.githubusercontent.com/11happy/cpx/main/install.sh | bash

Atau dengan wget:

wget -qO- https://raw.githubusercontent.com/11happy/cpx/main/install.sh | bash

Skrip ini akan mengunduh biner yang sesuai dengan arsitektur Anda (misal x86_64) dan menempatkannya di /usr/local/bin (mungkin perlu sudo).

2. Menggunakan Cargo (dari crates.io)

cargo install cpx

Pastikan Rust dan Cargo sudah terinstal. Metode ini akan mengkompilasi dari sumber, jadi butuh waktu sedikit lebih lama.

3. Arch Linux (AUR)

yay -S cpx-copy

Atau cari paket dengan nama cpx di AUR (bisa jadi berbeda).

4. Nix / NixOS

nix-shell -p cpx

5. Dari Source (GitHub)

git clone https://github.com/11happy/cpx.git
cd cpx
cargo install --path .
cpx --version

6. Unduh Biner Rilis

Kunjungi halaman rilis, unduh file .tar.gz atau .deb yang sesuai, lalu ekstrak dan pindahkan ke direktori PATH Anda (misal /usr/local/bin).

Setelah instalasi, coba jalankan cpx --help untuk melihat daftar opsi yang tersedia.

Contoh Penggunaan Sehari-hari (Biar Makin Paham)

Teori sudah cukup, sekarang saatnya praktek. Berbagai skenario umum dan cara mengatasinya dengan cpx.

๐Ÿ“„ Menyalin Satu File

cpx laporan.pdf arsip/laporan.pdf

๐Ÿ“ Menyalin Direktori secara Rekursif

cpx -r ProyekA/ /backup/proyek/

โšก Menyalin dengan Paralel 8 Thread dan Progress Bar

cpx -r -j 8 dataset-foto/ /media/backup/foto/

๐Ÿšซ Mengecualikan Pola Tertentu

cpx -r -e "*.log" -e "tmp/" -e "node_modules" webapp/ /arsip/webapp/

๐Ÿ” Melanjutkan Transfer yang Terputus

cpx -r --resume backup-partial/ /mnt/backup/full/

๐Ÿ”— Mempertahankan Semua Atribut (seperti cp -a)

cpx -r -p=all sistem/ /mnt/backup/sistem/

๐Ÿ”— Membuat Symlink Relatif (daripada menyalin)

cpx -s relative file.txt link/

Untuk lebih banyak contoh, lihat dokumentasi examples.md di GitHub.

Konfigurasi: Buat cpx Sesuai Gaya Anda

Daripada mengetik opsi panjang setiap saat, manfaatkan file konfigurasi. Inisialisasi dengan:

cpx config init

Perintah itu akan membuat file contoh di ~/.config/cpx/cpxconfig.toml. Isinya mirip seperti ini:

[exclude]
patterns = ["*.tmp", "*.log", "node_modules", ".git", "target"]
[copy]
parallel = 8
recursive = true
[preserve]
mode = "default"
[progress]
style = "detailed"
[reflink]
mode = "auto"

Edit sesuai kebutuhan. Untuk melihat konfigurasi aktif: cpx config show. Untuk mengetahui lokasi file: cpx config path. Konfigurasi bisa diletakkan di tiga level (prioritas: project > user > system), sehingga Anda bisa punya pengaturan berbeda untuk tiap proyek.

Performa: Benchmark cpx vs cp (Angka Bicara)

Saya melakukan pengujian sederhana di laptop saya (SSD NVMe, CPU 8 core, RAM 16 GB) dengan dua skenario:

SkenarioJumlah Filecp (waktu)cpx -j16 (waktu)Percepatan
Kode VS Code (ekstensi, dll)~15.000 file1084 ms263 ms4,12x
Source code Rust (direktori src)~65.000 file4,553 s1,091 s4,17x

Hasil ini konsisten dengan klaim proyek. Tentu, percepatan tergantung pada jumlah file, ukuran, dan media penyimpanan. Namun, jelas bahwa cpx unggul dalam menangani banyak file kecil berkat paralelisasi. Untuk file besar tunggal, perbedaannya mungkin tidak terlalu signifikan, tapi fitur progress bar dan resume tetap menjadi nilai tambah.

Perbandingan dengan Alat Lain: rsync, cp, dan lainnya

Selain cp, ada juga rsync yang populer untuk sinkronisasi dan backup. Namun, rsync dirancang untuk transfer jaringan dan sinkronisasi diferensial (hanya mengirim perubahan), sementara cpx fokus pada copy lokal dengan kecepatan tinggi dan progress bar. rsync juga bisa digunakan secara lokal, tapi biasanya lebih lambat karena overhead checksum (kecuali diatur dengan --no-checksum). Berikut perbandingan singkat:

Fiturcprsynccpx
Progress barโŒ Tidakโš ๏ธ (dengan --progress, tapi kurang informatif)โœ… Sangat detail
Paralel copyโŒ TidakโŒ Tidak (kecuali dengan hack)โœ… Bisa diatur
Resume transferโŒ Tidakโœ… (dengan --partial)โœ… (dengan --resume)
Konfigurasi fileโŒโš ๏ธ (hanya via skrip)โœ… TOML
Exclude patternโŒโœ… (--exclude)โœ… (-e)
BahasaCCRust

Kesimpulannya, cpx mengisi ceruk yang sebelumnya kosong: copy lokal super cepat dengan feedback real-time. Untuk sinkronisasi jaringan atau backup rutin, rsync tetap juara. Tapi untuk copy satu kali atau migrasi data besar, cpx adalah pilihan tepat.

Pengalaman Pribadi Saya dengan cpx

Setelah memakai cpx selama dua minggu, saya merasa seperti upgrade dari sepeda ontel ke motor sport. Saya sekarang punya alias di ~/.bashrc:

alias cpx="cpx -j 8"

Setiap kali menyalin proyek Laravel yang penuh dengan node_modules, saya tinggal ketik cpx -r -e node_modules proyek/ backup/ dan lihat progress barnya bergerak. Fitur resume juga sudah saya uji coba: saya sengaja menginterupsi dengan Ctrl+C saat menyalin folder film (30 GB), lalu jalankan ulang dengan --resumeโ€”dalam hitungan detik ia melanjutkan dari file terakhir tanpa mengulang. Luar biasa!

Saya juga membuat file konfigurasi global dengan exclude .git dan target, serta set progress style ke detailed. Kini cpx terasa seperti alat yang tailor-made untuk saya.

Tips dan Trik Menggunakan cpx

Platform yang Didukung dan Rencana ke Depan

PlatformStatusCatatan
Linuxโœ… Didukung penuhKernel 4.5+ direkomendasikan untuk fast copy (copy_file_range)
macOS๐Ÿ”„ DirencanakanAkan datang (lihat roadmap)
Windows๐Ÿ”„ DirencanakanAkan datang

Developer juga berencana menambahkan fitur seperti batch rename dan integrasi dengan file manager. Kita nantikan saja.

Kesimpulan: Haruskah Anda Beralih ke cpx?

Jelas, cpx bukan pengganti cp untuk semua situasiโ€”misalnya jika Anda hanya menyalin satu file kecil, cp sudah cukup. Namun, untuk pekerjaan menyalin ribuan file, direktori besar, atau ketika Anda butuh visibilitas dan ketahanan, cpx adalah pilihan yang sangat menarik. Ia menggabungkan kecepatan, fleksibilitas, dan kemudahan dalam satu paket Rust yang ringan.

Dengan dukungan komunitas yang aktif dan roadmap yang jelas, saya optimis cpx akan semakin matang. Jadi, tunggu apa lagi? Coba instal dan rasakan sendiri perbedaannya. Kalau Anda punya pengalaman atau pertanyaan, silakan tulis di kolom komentar di bawah! Saya penasaran dengan pendapat Anda.