Το cpx παρουσιάστηκε ως ταχύτερη, σύγχρονη αντικατάσταση του Linux cp


Ένα νέο εργαλείο βασισμένο στο Rust με το όνομα cpx προσφέρει μια σύγχρονη εναλλακτική στο παραδοσιακό command cp στο Linux, προσθέτοντας παράλληλη αντιγραφή, γραμμές προόδου, υποστήριξη συνέχισης και διαμορφώσιμες προεπιλογές.

Όπως όλοι γνωρίζουμε, η αντιγραφή αρχείων στο Linux βασίζεται εδώ και καιρό στην κλασική εντολή cp, η οποία παραμένει αξιόπιστη αλλά προσφέρει λίγη ανατροφοδότηση και περιορισμένο έλεγχο σε μακροχρόνιες ή περίπλοκες λειτουργίες.

Για να αντιμετωπιστεί αυτό, εμφανίζεται ένα πολλά υποσχόμενο νέο εργαλείο γραμμής εντολών βασισμένο στη Rust με την ονομασία cpx, σχεδιασμένο ως εναλλακτική και όχι ως αντικατάσταση, που προσεγγίζει την ίδια εργασία με έμφαση στην απόδοση, την ορατότητα και τη δυνατότητα παραμετροποίησης.

Απευθύνεται σε σενάρια όπου μεγάλα δέντρα φακέλων, διακοπές στη μεταφορά ή η ανάγκη για λεπτομερή αναφορά προόδου καθιστούν τα τυπικά εργαλεία λιγότερο βολικά στη χρήση. Το έργο είναι προς το παρόν μόνο για Linux και αξιοποιεί σύγχρονες δυνατότητες του πυρήνα για βελτίωση της ταχύτητας και της αξιοπιστίας της αντιγραφής.

Τα benchmarks που δημοσιεύθηκαν από το έργο δείχνουν χρόνους αντιγραφής έως τέσσερις έως πέντε φορές ταχύτερους από το cp σε μεγάλες συλλογές αρχείων. Τώρα, ας δούμε τα κύρια χαρακτηριστικά του cpx.

  • Παράλληλη αντιγραφή αρχείων: cpx εκτελεί πολλαπλές λειτουργίες αντιγραφής ταυτόχρονα. Οι χρήστες μπορούν να ελέγχουν το επίπεδο παραλληλισμού, επιτρέποντας στο εργαλείο να αξιοποιεί καλύτερα τις γρήγορες μονάδες αποθήκευσης και τα συστήματα πολλαπλών πυρήνων.
  • Αναφορά προόδου: Το εργαλείο περιλαμβάνει ενσωματωμένες γραμμές προόδου που δείχνουν την κατάσταση του αντίγραφου σε πραγματικό χρόνο. Η αναφορά προόδου είναι προσαρμόσιμη και μπορεί να ρυθμιστεί παγκοσμίως ή ανά έργο.
  • Συνεχόμενες μεταφορές: Οι διακοπείσες εργασίες αντιγραφής μπορούν να συνεχιστούν αργότερα χρησιμοποιώντας επαλήθευση αθροίσματος ελέγχου, και τα ήδη αντιγραμμένα αρχεία παραλείπονται αυτόματα.
  • Αποκλειστικά μοτίβα: Το cpx υποστηρίζει κανόνες αποκλεισμού παρόμοιους με το .gitignore, επιτρέποντας στους χρήστες να παραλείπουν αρχεία ή φακέλους όπως μεταδεδομένα ελέγχου εκδόσεων, αποτελέσματα κατασκευής ή προσωρινά αρχεία. Οι αποκλεισμοί μπορούν να οριστούν στη γραμμή εντολών ή σε αρχεία ρυθμίσεων.
  • Μόνιμη ρύθμιση: Οι προεπιλογές για τη συμπεριφορά αντιγραφής μπορούν να αποθηκευτούν σε αρχεία ρυθμίσεων σε επίπεδο έργου, χρήστη ή συστήματος. Οι ρυθμίσεις περιλαμβάνουν αναδρομικότητα, παράλληλη εκτέλεση, στυλ προόδου, χρήση reflink και διατήρηση χαρακτηριστικών.
  • Λειτουργίες συστήματος αρχείων ειδικές για Linux: Το εργαλείο υποστηρίζει επεκταμένα χαρακτηριστικά, διατήρηση του περιβάλλοντος SELinux, χρονικές σφραγίδες, ιδιοκτησία, σκληρούς συνδέσμους και προαιρετικούς reflinks με αντιγραφή κατά εγγραφή στα υποστηριζόμενα συστήματα αρχείων.
  • Ευέλικτη συμπεριφορά αντιγραφής: Το cpx περιλαμβάνει επιλογές για διαδραστικές επανεγγραφές, δημιουργία αντιγράφων ασφαλείας, διαχείριση συνδέσμων (symlinks) και σκληρών συνδέσμων (hard links), αντιγραφές μόνο με χαρακτηριστικά και λεπτομερή έλεγχο του τρόπου δημιουργίας ή αντικατάστασης προορισμών.

Η εγκατάσταση είναι πολύ απλή και διατίθεται μέσω ενός script κελύφους. Για να ξεκινήσετε με το scp, απλώς εκτελέστε:

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

Ενώ η υποστήριξη για macOS και Windows αναφέρεται στον οδικό χάρτη του έργου, η τρέχουσα έκδοση επικεντρώνεται αποκλειστικά στο Linux. Για περισσότερες πληροφορίες, δείτε τη σελίδα του εργαλείου στο GitHub.