tag:linuxfr.org,2005:/tags/copying/public
LinuxFr.org : les contenus étiquetés avec « copying »
2017-11-16T13:42:00+01:00
/favicon.png
tag:linuxfr.org,2005:News/38265
2017-10-28T09:25:37+02:00
2017-10-28T17:29:26+02:00
Sortie de gfast-copy et de fast-copy sur www.open-source-projects.net
Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr
<div><p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6f70656e2d736f757263652d70726f6a656374732e6e65742f67666173742d636f70792f49636f6e2f67666173742d636f70795f69636f6e2e706e67/gfast-copy_icon.png" alt="Icône de gfast-copy" title="Source : http://www.open-source-projects.net/gfast-copy/Icon/gfast-copy_icon.png"></p>
<p>Copier un unique (gros) fichier d’une source vers une destination donnée n’est pas une tâche pour laquelle les systèmes sont toujours optimisés.</p>
<p>Selon la philosophie UNIX, un programme doit accomplir une unique tâche précise et l’accomplir du mieux possible. C’est ce qui a donné naissance à <em>gfast-copy</em> et à <a href="http://www.open-source-projects.net/gfast-copy/gfast-copy_presentation.html"><em>fast-copy</em></a>. Ces programmes font une chose banale mais le font bien.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.open-source-projects.net/gfast-copy/Download/py/download_gfast-copy_deb.cgi" hreflang="en" href="https://linuxfr.org/redirect/100860">Télécharger le paquetage Debian de gfast-copy</a></li><li>lien nᵒ 2 : <a title="http://www.open-source-projects.net/gfast-copy/Download/py/download_gfast-copy_rpm.cgi" hreflang="en" href="https://linuxfr.org/redirect/100861">Télécharger le paquetage RPM de gfast-copy</a></li><li>lien nᵒ 3 : <a title="http://www.open-source-projects.net/gfast-copy/Download/py/download_gfast-copy_exe.cgi" hreflang="en" href="https://linuxfr.org/redirect/100862">Télécharger la version Windows de gfast-copy</a></li><li>lien nᵒ 4 : <a title="http://www.open-source-projects.net/gfast-copy/Download/py/download_gfast-copy_tarball.cgi" hreflang="en" href="https://linuxfr.org/redirect/100863">Télécharger l’archive tar de gfast-copy</a></li><li>lien nᵒ 5 : <a title="http://www.open-source-projects.net/gfast-copy/Notice/Online/index.html" hreflang="en" href="https://linuxfr.org/redirect/100864">README de gfast-copy.</a></li><li>lien nᵒ 6 : <a title="https://github.com/mrcyberfighter/gfast-copy" hreflang="fr" href="https://linuxfr.org/redirect/100865">GitHub de gfast-copy</a></li></ul><div><p>J’ai développé ces deux programmes car je copie souvent de gros fichiers (vidéos, images ISO, grosses archives, etc.) de « droite à gauche » et de « gauche à droite ». Et je trouvais que les systèmes d’exploitation copiaient trop lentement, parce qu’ils faisaient parallèlement autre chose, alors j’ai décidé de déléguer cette tâche à un binaire.</p>
<p>J’ai lu dans les <a href="https://www.gnu.org/manual/manual.fr.html">manuels GNU</a> qu’un programme qui dispose d’une interface graphique doit pouvoir accomplir la même tâche dans un (pseudo) terminal, alors j’ai écrit deux petits programmes en langage <em>C</em> : <strong>gfast-copy</strong> (<strong>G</strong>raphical <strong>F</strong>ast <strong>C</strong>opy) et <strong>fast-copy</strong> (<strong>F</strong>ast <strong>C</strong>opy).</p>
<h2 id="gfast-copy-graphical-fast-copy">gfast-copy (Graphical Fast Copy).</h2>
<p><strong>gfast-copy</strong> dispose d’une interface graphique <strong>simple</strong> :<br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6f70656e2d736f757263652d70726f6a656374732e6e65742f67666173742d636f70792f53637265656e73686f74732f67666173742d636f70795f474e555f4c696e75785f6d61696e5f696e746572666163655f6461726b5f7468656d655f65726173655f7372635f66696c655f6f6e2e706e67/gfast-copy_GNU_Linux_main_interface_dark_theme_erase_src_file_on.png" alt="Capture d’écran de gfast-copy" title="Source : http://www.open-source-projects.net/gfast-copy/Screenshots/gfast-copy_GNU_Linux_main_interface_dark_theme_erase_src_file_on.png"></p>
<p>Tout en haut, se trouve une barre de menu. Puis, alignés verticalement, viennent :</p>
<ul>
<li>un bouton étiqueté <em>Source</em> avec une icône qui vous permet de choisir le fichier à copier ;</li>
<li>à côté, se trouve un bouton interrupteur affichant une simple icône permettant d’effacer le fichier source ou pas après la copie ;</li>
<li>un bouton étiqueté <em>Destination</em> avec une icône vous permettant de choisir le l’emplacement et le nom du fichier de sortie (vous pouvez écraser un fichier).</li>
<li>à côté se trouve un bouton permettant de lancer la copie ;</li>
<li>et, en bas, une barre de progression affichant la progression rapide de la copie.</li>
</ul><h2 id="fast-copy-fastcopy">fast-copy (Fast Copy)</h2>
<p><strong>fast-copy</strong> est un outil en ligne de commande permettant de faire la même chose que <strong>gfast-copy</strong> mais depuis un terminal et, du coup, plus rapidement.<br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6f70656e2d736f757263652d70726f6a656374732e6e65742f67666173742d636f70792f53637265656e73686f74732f666173742d636f70795f474e555f4c696e75785f70726f63657373696e675f636f7079696e675f6f7065726174696f6e2e706e67/fast-copy_GNU_Linux_processing_copying_operation.png" alt="Capture d’écran de fast-copy" title="Source : http://www.open-source-projects.net/gfast-copy/Screenshots/fast-copy_GNU_Linux_processing_copying_operation.png"></p>
<p>Ce programme permet aussi:</p>
<ul>
<li>d’écraser la destination ;</li>
<li>d’effacer le fichier source après la copie ;</li>
<li>d’utiliser les appels système au lieu des flux (comportement par défaut).</li>
</ul><pre><code class="bash">$ fast-copy -h
fast-copy - a fast chunk file copy program.
Usage : fast-copy -r input-file -w output-file <span class="o">[</span>-o<span class="o">]</span> <span class="o">[</span>-s<span class="o">]</span> <span class="o">[</span>-e<span class="o">]</span> <span class="o">[</span>-h<span class="o">]</span>
-r Read from file <span class="o">(</span>required<span class="o">)</span>.
-w Write to file <span class="o">(</span>required<span class="o">)</span>.
-o Overwrite destination file <span class="o">(</span>optional<span class="o">)</span>.
-e Erase <span class="nb">source</span> file <span class="o">(</span>optional<span class="o">)</span>.
-s Use syscalls instead of streams <span class="o">(</span>optional only UNIX<span class="o">)</span>.
-h Print this <span class="nb">help</span> message.
- Copyright <span class="o">(</span>©<span class="o">)</span> <span class="m">2017</span> Brüggemann Eddie <mrcyberfighter@gmail.com> GPLv3.</code></pre>
<h3 id="algorithme-de-copie">Algorithme de copie.</h3>
<ol>
<li>Le programme cherche d’abord la taille optimale de tampon :
<ul>
<li>soit en regardant si la constante <code>BUFSIZ</code> est définie et si elle est assez grande,</li>
<li>sinon, la taille du tampon est mise à <code>8192</code> octets,</li>
<li>si le programme utilise les appels système, il va regarder la taille optimale du tampon dans le système de fichiers ;</li>
</ul>
</li>
<li>le programme définit un tampon de la taille optimale ;</li>
<li>le programme va copier dans une boucle très rapide la source vers la destination affichant une barre de progression ;</li>
<li>une fois la copie effectuée avec succès le programme va mettre à jour le système de fichiers ;</li>
<li>si vous le désirez le programme va supprimer le fichier source.</li>
</ol><h2 id="compatibilité-et-portages">Compatibilité et portages</h2>
<p>Les programmes ne requièrent que GTK+ en version supérieure ou égale à 3.14 (<strong>fast-copy</strong> et ne font qu’un petit usage de <a href="https://fr.wikipedia.org/wiki/GLib">GLib</a> et de <a href="https://developer.gnome.org/gio/stable/">Gio</a>).</p>
<p>Les programmes existent pour plusieurs systèmes d’exploitation :</p>
<h3 id="gnulinux">GNU/Linux</h3>
<ul>
<li>un paquetage <code>*.deb</code> ;</li>
<li>un paquetage <code>*.rpm</code> ;</li>
<li>un <code>tarball</code> basé sur les <em>autotools</em>.</li>
</ul><h3 id="windows">Windows</h3>
<ul>
<li>un fichier <code>*.exe</code> auto‐extractible ne comprenant que <strong>gfast-copy</strong> ;</li>
<li>le <code>tarball</code> permet de compiler avec <strong>MSYS2</strong> et <strong>Cygwin</strong> (les dernières versions en date d’aujourd’hui).</li>
</ul><h3 id="macos-sierra1012">macOS (Sierra 10.12)</h3>
<p>Le <strong>tarball</strong> permet de compiler les programmes et vous crée une icône dans le dossier <code>/Applications</code>.</p>
<p><em><strong>Note :</strong> Vous pourrez télécharger GTK 3 grâce à <strong>brew</strong> et suivre les instructions d’installation.</em></p>
<h2 id="notes-de-lauteur">Notes de l’auteur</h2>
<p>N’utilisez ces deux programmes que pour copier de gros fichiers. Pour les autres, votre système d’exploitation s’en occupe très bien.</p>
<p>Si vous préférez la rapidité de votre système d’exploitation alors n’utilisez pas ces programmes.</p>
<blockquote>
<p><strong><em>Pourquoi ces programmes ne permettent pas de copier plusieurs fichiers à la fois <br>
(surtout fast-copy) ?</em></strong></p>
<p><em>Car il existe des outils pour cela et le récursivité des chemins de fichiers de destination n’est pas une chose facile.</em></p>
</blockquote>
<p>Car, comme je l’ai dit, je les ai développés à des fins personnelles mais je désire les partager.</p>
<p><em><strong>Note :</strong> J’ai sûrement péché d’avoir mis une option pour chaque chemin de fichier, mais regardez la notice, vous trouverez un exemple de « wrapper » de <strong>fast-copy</strong> très pratique.</em></p>
<h2 id="performances">Performances</h2>
<p>Cela dépend de plusieurs facteurs : le système d’exploitation sur lequel est utilisé le programme, la charge de la machine et, bien sûr, la nature des sources et cibles de l’opération de copie :</p>
<ul>
<li>disque dur interne vers un disque dur interne ;</li>
<li>disque dur interne vers un disque dur externe ;</li>
<li>disque dur externe vers un disque dur interne.</li>
</ul></div><div><a href="https://linuxfr.org/news/sortie-de-gfast-copy-et-de-fast-copy-sur-www-open-source-projects-net.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112949/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-gfast-copy-et-de-fast-copy-sur-www-open-source-projects-net#comments">ouvrir dans le navigateur</a>
</p>
Linuxator
Davy Defaud
Pierre Jarillon
Xavier Teyssier
palm123
claudex
https://linuxfr.org/nodes/112949/comments.atom