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:
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.