Pesquisa de sites

cpx Introduzido como uma Substituição Mais Rápida e Moderna para o cp do Linux


Uma nova ferramenta baseada em Rust chamada cpx oferece uma alternativa moderna ao tradicional comando cp no Linux, acrescentando cópia paralela, barras de progresso, suporte a retoma e padrões configuráveis.

Como todos sabemos, a cópia de ficheiros no Linux tem-se baseado há muito tempo no clássico comando cp, que continua a ser fiável, mas oferece pouco feedback e um controlo limitado sobre operações longas ou complexas.

Para abordar isto, surgiu uma nova e promissora ferramenta de linha de comandos baseada em Rust chamada cpx, concebida como uma alternativa e não como um substituto, que realiza a mesma tarefa com enfoque no desempenho, visibilidade e configurabilidade.

Destina-se a cenários em que grandes árvores de diretórios, transferências interrompidas ou a necessidade de relatórios de progresso detalhados tornam as ferramentas standard menos convenientes de utilizar. O projeto é atualmente apenas para Linux e tira partido de funcionalidades modernas do kernel para melhorar o desempenho e a fiabilidade das cópias.

Os benchmarks publicados pelo projeto mostram tempos de cópia até quatro a cinco vezes mais rápidos do que o cp em conjuntos de ficheiros grandes. Agora, vamos percorrer as principais características do cpx.

  • Copiar ficheiros em paralelo: cpx realiza múltiplas operações de cópia em simultâneo. Os utilizadores podem controlar o nível de paralelismo, permitindo à ferramenta tirar melhor proveito do armazenamento rápido e de sistemas multi-core.
  • Relatórios de progresso: A ferramenta inclui barras de progresso incorporadas que mostram o estado em tempo real da cópia. A exibição do progresso é personalizável e pode ser configurada globalmente ou por projeto.
  • Transferências retomáveis: Trabalhos de cópia interrompidos podem ser retomados mais tarde usando a verificação de soma de verificação, e os ficheiros já copiados são automaticamente ignorados.
  • Padrões de exclusão: cpx suporta regras de exclusão semelhantes às do .gitignore, permitindo aos utilizadores omitir ficheiros ou diretórios, como metadados de controlo de versão, resultados de compilação ou ficheiros temporários. As exclusões podem ser definidas na linha de comando ou em ficheiros de configuração.
  • Configuração persistente: Os padrões para o comportamento de cópia podem ser armazenados em ficheiros de configuração ao nível do projeto, do utilizador ou do sistema. As definições incluem recursão, paralelismo, estilo de progresso, utilização de reflink e preservação de atributos.
  • Funcionalidades específicas de sistemas de ficheiros Linux: A ferramenta suporta atributos estendidos, preservação do contexto SELinux, carimbos de data/hora, propriedade, ligações físicas e reflinks copy-on-write opcionais em sistemas de ficheiros suportados.
  • Comportamento de cópia flexível: cpx inclui opções para substituições interativas, backups, tratamento de links simbólicos e links físicos, cópias apenas de atributos e controlo detalhado sobre como os destinos são criados ou substituídos.

A instalação é muito simples, disponível através de um script de shell. Para começar a usar o scp, basta executar:

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

Embora o suporte para macOS e Windows esteja listado no roadmap do projeto, a versão atual foca exclusivamente no Linux. Para mais informações, consulte a página do projeto no GitHub.