Cette page est une recopie de cette page. Merci à sebsauvage pour le travail réalisé.
Croc est un petit logiciel (8 Méga-octets) en ligne de commande pratique pour transférer directement un fichier ou un répertoire d'un ordinateur à un autre. Il a les particularités suivantes:
croc est déjà probablement présent dans les dépôts de votre distribution.
Sinon, vous pouvez procéder à une installation manuelle : https://github.com/schollz/croc#install
Ou même télécharger directement la dernière version (c'est un simple exécutable) (C'est pratique également pour utiliser croc sur les ordinateurs où vous n'avez pas les droits pour installer des applications) : https://github.com/schollz/croc/releases/latest
Croc existe pour Windows, Linux (pour processeurs x86/x64/arm… donc cela fonctionnera aussi très bien sur un Raspberry), Mac, FreeBSD et autres.
L'auteur ne distribue pas de version officielle pour Android, mais il existe deux moyens de l'utiliser. Voir la section Android.
croc send NomDuFichierOuDuRépertoire
croc 2206-madonna-album-cigar
Et c'est tout. Dès que le fichier est tranféré, les deux applications se terminent.
Dans le cas où les machines ne peuvent pas se “parler” en direct, le serveur croc.schollz.com est utilisé comme relai mais c'est chiffré de bout en bout.
Mais rien ne vous empêche d'installer votre propre serveur de relai.
croc send --code MonSuperCodeTrèsSecret6584618768651 NomDuFichierOuDuRépertoire
croc MonSuperCodeTrèsSecret6584618768651
croc send fichier1 fichier2 répertoire1 répertoire2
La plupart des gestionnaires de fichiers sous Linux vous permettent de créer vos propres scripts, activables avec un simple clic-droit. Exemple:
Par exemple dans le bureau Mate, le gestionnaire de fichier est Caja et vous pouvez placer vos scripts dans ~/.config/caja/scripts/
Voici un script pour envoyer n'importe quel fichier via Croc avec un simple clic-droit dans Caja:
#!/bin/bash IFS=$'\n' for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do if [ -d "$FILENAME" ]; then cmd="croc send \"$FILENAME\"" mate-terminal --title="Envoi du répertoire via croc (`basename $FILENAME`)" -x /bin/bash -l -c "$cmd" fi if [ -f "$FILENAME" ]; then cmd="croc send \"$FILENAME\"" mate-terminal --title="Envoi du fichier via croc (`basename $FILENAME`)" -x /bin/bash -l -c "$cmd" fi done
Enregistrez-le dans ~/.config/caja/scripts
et rendez-le exécutable (chmod +x Envoyer-via-croc
). Vous pouvez maintenant faire un clic-droit sur les fichiers et répertoires > Scripts > Envoyer-via-croc.
Notez que la plupart des autres gestionnaires de fichiers (par exemple Nautilus) possèdent la même capacité de lancer des scripts, mais vous devrez adapter ce script et le placer dans le bon répertoire.
S'il y a un problème réseau qui brise la connexion, émetteur et récepteur vont quitter.
Il faut alors relancer l'envoi du fichier côté émetteur (ce qui va créer un nouveau code).
Côté destinataire, retapez la commande de réception avec ce nouveau code. Quand croc verra qu'un fichier de même nom existe, il vous proposera de reprendre le téléchargement.
Resume 'NomDuFichier' (25.4%)? (y/N)
Répondez simplement Y et il reprendra là où il s'était arrêté.
Si vous voulez utiliser croc dans vos scripts, vous pouvez aussi le faire. Par exemple :
croc send --code blablabla587568 monfichier
Et côté réception:
croc --yes blablabla587568
--yes
téléchargera automatiquement.
Vous pouvez également utiliser les pipes:
echo 'coucou' | croc send --code blabla750
Et à la réception:
croc --yes --stdout blabla750 > message.txt
L'auteur ne distribue pas de version officielle pour Android, mais il y a deux manière d'utiliser croc sous Android:
Termux est un émulateur Linux pour Android qui ne nécessite pas un téléphone rooté. Il possède son propre gestionnaire de packages et fournit un terminal. Voici les instructions (rapides):
pkg upgrade
termux-setup-storage
~/storage/download
correspond à /storage/emulated/0/Download
(téléchargements Android)~/storage/dcim
correspond à /storage/emulated/0/DCIM
(photos)~/storage/shared
à /storage/emulated/0/
(Le stockage interne du téléphone)~/storage/external-1
permet d'accéder à la carte microSD, mais selon les versions d'Android il est possible que cela ne fonctionne pas (à cause des restrictions sécurité).pkg install croc
pkg
. pkg s'utilise de la même manière que apt
).
Si vous voulez écrire des scripts shell pour termux, votre shebang ne doit pas être #!/bin/sh
mais #!/data/data/com.termux/files/usr/bin/sh
python3 -m http.server
et sur l'autre machine accédez avec http:<adresseIP>:8000/