Estoy usando vagabundo a través de ssh para acceder a archivos remotos. Para los archivos de texto, esto funciona muy bien, pero cada vez que quiero copiar archivos remotos más grandes en mi máquina local, vagabundo usa su método lento en línea (codificando el archivo con gzip). Esto es mucho más lento que usar un método externo como, por ejemplo, scp. ¿Cómo hago que emacs use scp cuando transfiero archivos grandes?
Información relevante:
Utilizo un archivo ~ / .ssh / config para acceder a la máquina remota. El alias de esa máquina es hehi09 a continuación. El acceso es sin contraseña
Mensajes en el búfer de mensajes al transferir:
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)'...
Valores de:
el valor del límite de tamaño de la copia de vagabundo es 10240 (mucho más pequeño que el tamaño de archivo probado)
el valor del método de vagabundo predeterminado es "scp"
$ scp hehi09:/home/christian/big_file.dat ~/
funciona como se esperaba desde la línea de comando y es mucho más rápido que la transferencia en emacs
¿Alguna idea de por qué emacs no está usando scp para copiar archivos grandes? ¡Cualquier ayuda es muy apreciada!
scp
su método predeterminado. Incluso entonces, Tramp copia archivos pequeños víassh
y archivos grandes víascp
. Puede personalizar el límite a través detramp-copy-size-limit
./scp:host:/path/to/file
o/ssh:host:/path/to/file
.Porque tienes que configurarlo en el
~/.emacs
archivo. A pesar de eso, Emacs es un editor de texto, no un cliente SFTP o FTP, utiliza estabase64
codificación mientras que en unssh
método que lo hace demasiado lento para la transferencia de archivos.fuente
ssh
, tiene razón en que sebase64
está llevando a cabo una conversión que es lenta para archivos grandes. Sin embargo, si usascp
ese no es el caso. Emacs es muy capaz de ejecutar comandos que no tratan con "texto". Por último, no les digas a los usuarios de Emacs que su sistema operativo favorito es un editor de texto;)scp
y labase64
conversión siguió ocurriendo. Sería apreciable si no sucede, una vez que probablemente sea la aplicación principal para las conexiones SFTP. Aunque se utiliza como editor de texto principal y administrador de archivos.scp
método, sinbase64
conversión, volviéndolo más rápido.scp
no usarbase64
codificación. ¿Podrías compartir rápidamente cuál fue el problema en tu caso para que alguien viniera por aquí en el futuro?TRAMP
dired
conexión estaba abierta a través dessh
, luego estaba ejecutando elscp
comando, lo que impedía labase64
conversión. Cuando ejecuta tanto elTRAMP
dired
comando de conexión como el de copia con elscp
método, no tuvo en cuenta labase64
conversión y fue más rápido.