J'utilise tramp via ssh pour accéder aux fichiers distants. Pour les fichiers texte, cela fonctionne très bien, mais chaque fois que je veux copier des fichiers distants plus gros sur ma machine locale, tramp utilise sa méthode lente en ligne (encodage du fichier avec gzip). C'est beaucoup plus lent que d'utiliser une méthode externe comme par exemple scp. Comment puis-je faire en sorte qu'emacs utilise scp lors du transfert de gros fichiers?
Les informations pertinentes:
J'utilise un fichier ~ / .ssh / config pour accéder à la machine distante. L'alias de cette machine est hehi09 ci-dessous. L'accès est sans mot de passe
Messages dans le tampon de messages lors du transfert:
Copying /ssh:hehi09:/home/christian/big_file.dat to /home/christian/big_file.dat'... Tramp: Inserting `/ssh:hehi09:/home/christian/big_file.dat'... Tramp: Encoding remote file `/ssh:hehi09:/home/christian/big_file.dat' with `(gzip <%s | base64)'...
Valeurs de:
la valeur de tramp-copy-size-limit est 10240 (beaucoup plus petite que la taille de fichier testée)
la valeur de la méthode tramp-default-method est "scp"
$ scp hehi09:/home/christian/big_file.dat ~/
fonctionne comme prévu à partir de la ligne de commande et est beaucoup plus rapide que le transfert dans emacs
Des idées pourquoi emacs n'utilise pas scp pour copier de gros fichiers? Toute aide est grandement appréciée!
scp
votre méthode par défaut. Même dans ce cas, Tramp copie de petits fichiers viassh
et de gros fichiers viascp
. Vous pouvez personnaliser la limite viatramp-copy-size-limit
./scp:host:/path/to/file
ou/ssh:host:/path/to/file
.Parce que vous devez le mettre dans un
~/.emacs
fichier. Malgré cela, Emacs est un éditeur de texte, pas un client SFTP ou FTP, il utilise cetbase64
encodage dans unessh
méthode qui le ralentit trop pour le transfert de fichiers.la source
ssh
vous avez raison qu'unebase64
conversion est en cours, ce qui est lent pour les fichiers volumineux. Cependant, si vous utilisezscp
ce n'est pas le cas. Emacs est bien capable d'exécuter des commandes qui ne traitent pas du "texte". Enfin, ne dites pas aux utilisateurs d'Emacs que leur système d'exploitation préféré est un éditeur de texte;)scp
et labase64
conversion s'est poursuivie. Serait appréciable si cela ne se produit pas, une fois que ce sera probablement l'application principale pour les connexions SFTP. Bien qu'il soit utilisé comme éditeur de texte principal et gestionnaire de fichiers.scp
méthode, sansbase64
conversion, en le tournant plus rapidement.scp
ne pas utiliser l'base64
encodage. Pourriez-vous rapidement expliquer quel était le problème dans votre cas pour quiconque passerait par ici à l'avenir?TRAMP
dired
connexion était ouverte viassh
, puis exécutait lascp
commande, ce qui a effacé labase64
conversion. Lorsque vous exécutez laTRAMP
dired
connexion et la copie de la commande elle-même avec lascp
méthode, elle ignore labase64
conversion et accélère.