Un cp amélioré: vcp

Lorsque j'ai commencé à utiliser Gentoo en 2008, je suis tombé tout à fait par hasard sur un utilitaire de copie en console assez efficace, et qui comblait quelques lacunes de la commande cp.

Il s'agit d'une application développée sous licence BSD par Daniel Bryan, quelque part entre 2002 et 2007. Peu connu, vcp est absent de la quasi totalité des distributions GNU/Linux actuelles, nécessitant une compilation manuelle pour l'installer.

Concrètement

L'appel de vcp se fait en console, sous la forme "vcp source cible". Par défaut, effectuer une copie fait alors appel à une interface en ncurses, mais il est possible de n'avoir uniquement qu'une sortie en console, bien plus pratique.

Vcp possède plusieurs points forts:

  • Il existe un indicateur d'avancement global, mais qui ne prends pas en compte d'éventuels fichiers déjà présents (interface ncurses uniquement)
  • Il y a aussi un indicateur d'avancement propre au fichier en cours, accompagné du taux de vitesse de copie (interface ncurses et en console).
  • Il est possible suivre le nombre et le nom des fichiers transférés, ce qui donne une bonne idée de l'avancement global (ncurses et console).
  • Comme cp, il peut ignorer les fichiers à copier lorsqu'ils sont déjà présents dans le répertoire cible.
  • Pas comme cp, il est capable de reprendre le transfert d'un fichier interrompu, qu'il ai été débuté par vcp, cp ou tout autre interface graphique.

  • Interface ncurses et console:


    L'installation

    Il n'existe pas de page de projet, vcp est en fait très peu connu. Je ne l'ai trouvé que dans Gentoo et Archlinux (via AUR). Pour les autres distributions, il va falloir le compiler à la main.

    Tout d'abord, téléchargez vcp:

    $ wget http://download.tuxfamily.org/blogmarcel/vcp-2.2.tar.gz
    

    Installez la dépendance "ncurses" au besoin, puis procédez à l'installation (c'est compilé en quelques secondes):

    $ tar xf vcp-2.2.tar.gz*
    $ cd vcp-2.2
    $ make
    $ su
    # make install
    # make installconf
    
    (La dernière ligne copie un fichier de configuration vers /etc/vcp.conf).

    La configuration

    Personnellement, je n'utilise que l'interface en console, la version ncurses n'apportant que peu de choses en plus.
    Dans le fichier /etc/vcp.conf, j'utilise les options t,R,u et v:

    flags = "tRuv"
    

    Leur signification est la suivante:

    • t (text output): L'interface ncurses n'est pas invoquée.
    • v (verbose): obligatoire pour bénéficier des informations de copie et des barres de progression en console.
    • R (recursive): copie les répertoire, recréé les liens symboliques, et copie les liens durs.
    • u (update): ne copie pas si les fichiers cibles sont déjà présents et plus récents ou de même taille. Si leur taille diffère, alors ils sont considérés comme étant incomplets et leur copie reprend.

    Un dernier argument utile est le "-m". Il permet de spécifier une source et de la copier vers plusieurs répertoire, soit vcp -m source destination1 destination2 ... destinationX (le comportement par defaut est vcp source1 source2 ... sourceX destination)


    Note: Merci à Gyo qui m'a fais remarquer que le copyright de vcp était en fait une licence BSD.
    Vus : 893
    Publié par PPmarcel : 21