La transferencia de archivos entre una computadora y un móvil se puede realizar de varios métodos y utilizando varios protocolos. Hoy, veremos un enfoque completamente nuevo y diferente. Esta guía explica cómo transferir archivos entre computadoras y dispositivos móviles escaneando códigos QR. ¡Sí, lo leiste bien! Saluda a Qrcp , anteriormente conocido como Qr-filetransfer , una sencilla aplicación de transferencia de archivos por línea de comandos que se utiliza para enviar y recibir archivos a través de WiFi entre un sistema Linux y un teléfono móvil mediante el escaneo de un código QR, sin salir de la Terminal.
Al enviar archivos, Qrcp vinculará un servidor web a la dirección de su tarjeta de interfaz de red WiFi en un puerto aleatorio y creará un controlador para él. El controlador predeterminado servirá el contenido y saldrá del programa una vez que se complete la transferencia. Del mismo modo, al recibir archivos, qrcp
sirve una página de carga y maneja la transferencia.
Qrcp es un programa gratuito y de código abierto escrito en Go lenguaje de programación y se publica bajo MIT licencia.
Instalar Qrcp en Linux
Qrcp puede instalarse de múltiples maneras. Instale Qrcp en Linux usando cualquiera de los siguientes métodos.
Instalar Qrcp con Golang
Primero, instale el lenguaje de programación Go en su sistema Linux como se describe en el siguiente enlace.
- Cómo instalar Go Language en Linux
Después de instalar Golang, ejecute el siguiente comando para instalar Qrcp en su sistema Linux:
$ go get github.com/claudiodangelis/qrcp
Instalar Qrcp desde binarios
Descargue el último archivo Qrcp desde la página de lanzamientos . Al momento de escribir esta guía, la última versión era 0.7.0 .
$ wget https://github.com/claudiodangelis/qrcp/releases/download/0.7.0/qrcp_0.7.0_linux_x86_64.tar.gz
Extrae el archivo descargado usando commad:
$ tar xf qrcp_0.7.0_linux_x86_64.tar.gz
Mueva el archivo binario a su $PATH
:
$ sudo mv qrcp /usr/local/bin
Finalmente, configure el permiso ejecutable:
$ sudo chmod +x /usr/local/bin/qrcp
Tenga en cuenta que el último paso es opcional. No tienes que hacerlo ejecutable. En este caso, el archivo se volverá ejecutable una vez que lo haya movido a su ruta.
Instalar Qrcp usando administradores de paquetes
Qrcp está disponible en AUR.
- qrcp-bin
- qrcp
Puede instalarlo usando cualquier asistente de AUR, por ejemplo Yay .
$ yay -S qrcp
O,
$ yay -S qrcp-bin
Qrcp también está disponible como .deb
y .rpm
archivos Vaya a la página de lanzamientos y descargue la versión adecuada para su distribución.
Si está en sistemas basados en Debian, descargue .deb
archivo de instalación de la página de lanzamientos e instálelo como se muestra a continuación.
$ sudo apt install gdebi
$ sudo gdebi qrcp_0.7.0_linux_x86_64.deb
En sistemas basados en RPM, como CentOS, RHEL, descargue .rpm
archivo de la página de lanzamientos e instálelo como se muestra a continuación:
$ sudo dnf install qrcp_0.7.0_linux_x86_64.rpm
O,
$ sudo rpm -ivh qrcp_0.7.0_linux_x86_64.rpm
Una vez instalado, confirme si Qrcp funciona ejecutando este comando:
$ qrcp version
qrcp 0.7.0 [date: 2020-10-08T13:30:56Z]
Transfiere archivos entre computadoras y dispositivos móviles usando Qrcp escaneando códigos QR
¡Transferir archivos entre computadoras y dispositivos móviles con Qrcp es bastante fácil!
Para el propósito de esta guía, usaré el sistema de escritorio Ubuntu 20.04 LTS y una Tablet PC con Android.
Asegúrese de tener instalada una aplicación de lector de códigos QR en su teléfono móvil. Hay muchos lectores de códigos QR disponibles para Android. Realice una búsqueda rápida en la web e instale cualquier lector de códigos QR de su elección en su dispositivo móvil.
Envíe archivos desde la computadora al móvil usando Qrcp
Primero, veamos cómo enviar un archivo desde un sistema Linux a un dispositivo móvil.
Voy a enviar un archivo de imagen desde mi escritorio Ubuntu a la tableta usando el comando:
$ qrcp ostechnix.png
Cuando inicie Qrcp por primera vez, escaneará su sistema para encontrar la cantidad de interfaces de red WiFi disponibles en su sistema. Si hay más de una tarjeta WiFi adecuada disponible, Qrcp le pedirá que elija una para transferir archivos. En mi caso, elegí la interfaz inalámbrica, es decir, wlp9s0
. Pulse la tecla ENTER para aceptar la interfaz inalámbrica. Qrcp recordará esta elección y no preguntará la próxima vez.
Use the arrow keys to navigate: ↓ ↑ → ←
? Choose interface:
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
mpqemubr0 (10.39.86.1)
any (0.0.0.0)
Ahora verá un código QR en su Terminal como se muestra a continuación.
✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀▀ ██▄█▄▀██▄█ █ █ ████
████ █▄▄▄█ █ ██▄█ █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀ ▄▄▄█▀▀▀███▄ ▄█▀ █▀ ▄▄█▀████
████▀█▄ ▀▄▄ ██ ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀ █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀ █▄█ ▄▄█▀████
████ █ █ █ ▀▀▄█▄▄ ▄▀ ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀ ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273471.png)
Ahora, abra la aplicación del lector de códigos QR en su teléfono móvil y escanee el código QR que se muestra en la terminal de la computadora con Linux. Después de escanear el código QR, verá la URL de descarga en su teléfono móvil. Simplemente haga clic para descargar el archivo.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273502.png)
El archivo se descargará en la carpeta de descargas predeterminada de tu móvil.
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273520.png)
También puede enviar varios archivos:
$ qrcp file1 file2
Y se puede enviar una carpeta completa como se muestra a continuación:
$ qrcp ~/Documents/
Si el tamaño del archivo es grande, comprímalo y envíelo con --zip
bandera:
$ qrcp --zip movie.mp4
Recibe archivos del móvil al ordenador usando Qrcp
Para enviar un archivo a su computadora desde su dispositivo móvil, ejecute el siguiente comando en la Terminal de su sistema Linux:
$ qrcp receive
Verá el código QR en la Terminal:
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██ █ ▀ ▄██ ▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀█▄▀ ▄▀▄█▄▄██ █ █ ████
████ █▄▄▄█ █ ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀ ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █ █▄▄█ █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀ ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀ ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀ █▄█ ▄▄█▀████
████ █ █ █ █▀▀▀ ▄▄▄ ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273561.png)
Abra el lector de códigos QR en el dispositivo móvil y escanee el código QR anterior. Haz clic en la URL para subir los archivos desde tu móvil:
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273666.png)
Se abrirá una nueva ventana del navegador en tu móvil. Elija los archivos que desea enviar desde su dispositivo móvil a su computadora y haga clic en el botón Transferir:
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273688.png)
Tras la transferencia de archivos exitosa, verá el siguiente mensaje en su dispositivo móvil:
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273693.png)
En su terminal Linux, verá el siguiente mensaje después de que se complete la transferencia de archivos:
Transferring file: /home/sk/IMG-20201017-WA0002.jpg
/home/sk/IMG-20201017-WA0002.jpg[===============================================] 99.74% 0s
File transfer completed
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042716273734.png)
Como puede ver, el archivo se descarga en el directorio actual. Si desea recibir los archivos en un directorio específico, use --output
bandera:
$ qrcp receive --output=~/Downloads
En este caso, todos los archivos se descargarán en ~/Downloads
directorio.
Opciones de Qrcp
Qrcp requiere configuración cero. De forma predeterminada, Qrcp funcionará de forma inmediata sin ninguna configuración previa. Sin embargo, puede modificar la funcionalidad de Qrcp de ciertas maneras con la ayuda de los parámetros de Qrcp. Por ejemplo, puede usar un puerto específico en lugar de un puerto aleatorio, especificar la ubicación del archivo de configuración, usar una tarjeta de interfaz de red específica para la transferencia de archivos, usar URL personalizadas para enviar/recibir archivos, usar FQDN en lugar de la dirección IP, imprimir el código QR en navegador, mantener vivo el servidor y transferir archivos de forma segura a través de HTTPS, etc.
Configurar Qrcp
El archivo de configuración predeterminado se almacena en $HOME/.qrcp.json
. Qrcp leerá y usará los parámetros definidos en este archivo mientras transfiere archivos.
Puede ver los parámetros configurados actualmente usando cat
comando:
$ cat $HOME/.qrcp.json
{
"fqdn": "",
"interface": "wlp9s0",
"port": 0,
"keepAlive": false,
"path": "~/Desktop",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
Podemos configurar los parámetros por defecto de Qrcp a nuestro gusto ejecutando el siguiente comando:
$ qrcp config
Elija la interfaz de red inalámbrica adecuada para usar para la transferencia de archivos:
? Choose interface:
mpqemubr0 (10.39.86.1)
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
any (0.0.0.0)
Si no ve las interfaces de red por algún motivo, use el siguiente comando en su lugar:
$ qrcp --list-all-interfaces config
Introduzca el nombre completo (FQDN):
✔ Choose fully-qualified domain name: sk.ostechnix.example
Elija puerto aleatorio:
✔ Choose port, 0 means random port: 8080
Si desea utilizar un puerto aleatorio, simplemente presione 0
(cero).
Introduzca la ruta de destino para guardar los archivos/carpetas:
✔ Choose path, empty means random: ~/Downloads
De forma predeterminada, Qrcp guardará los archivos/carpetas recibidos en el directorio actual.
Elija si desea mantener vivo el servidor después de la transferencia de archivos:
? Should the server keep alive after transferring?:
▸ No
Yes
Seleccione la opción adecuada si desea transferir el archivo de forma segura:
? Should files be securely transferred with HTTPS?:
▸ No
Yes
Si elige "Sí", deberá ingresar la ruta del certificado TLS y la clave del certificado TLS.
Después de actualizar el archivo de configuración, la configuración predeterminada se actualizará con los nuevos valores.
Configuration updated:
{
"fqdn": "sk.ostechnix.example",
"interface": "wlp9s0",
"port": 8080,
"keepAlive": false,
"path": "~/Downloads",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
Qrcp utilizará estos nuevos valores al transferir archivos.
También puede usar manualmente parámetros personalizados en lugar de los parámetros existentes definidos en el archivo de configuración.
Usar puerto personalizado
Qrcp utilizará cualquier puerto aleatorio disponible al enviar y recibir archivos entre su computadora y el dispositivo móvil. Si desea utilizar un determinado puerto, por ejemplo 8080
, mientras transfiere archivos, use --port
o -p
bandera:
$ qrcp --port 8080 file.txt
Especifique la ubicación del archivo de configuración
Como se indicó anteriormente, el archivo de configuración predeterminado se almacena en $HOME/.qrcp.json
. Si desea usar un archivo de configuración almacenado en una ubicación diferente, especifique su ruta usando --config
bandera:
$ qrcp --config ~/Downloads/qrcp.json file.txt
Utilice una interfaz WiFi específica para la transferencia de archivos
Si hay más de una interfaz Wi-Fi adecuada disponible en su sistema, puede usar una interfaz Wi-Fi específica para la transferencia de archivos usando --interface
(o -i
) bandera:
$ qrcp -i wlp9s0 file.txt
Asignar ruta específica para URL
Qrcp utiliza los siguientes formatos de URL de forma predeterminada para enviar y recibir archivos:
- enviar -
http://{ip address}:{port}/send/{random path}
- recibir -
http://{ip address}:{port}/receive/{random path}
Si desea utilizar una ruta específica para las URL, en lugar de una ruta aleatoria, utilice --path
bandera:
$ qrcp --path=abcd file.txt
Ahora, la URL resultante será:
$ http://{ip address}:{port}/send/abcd
Usar FQDN en lugar de dirección IP
De forma predeterminada, Qrcp utilizará la dirección IP de su sistema Linux en la URL. Si desea usar un nombre completo en lugar de la dirección IP en la URL, use --fqdn
(o -d
) bandera:
$ qrcp --fqdn ostechnix.example -i wlp9s0 -p 8080 file.txt
Imprimir código QR en el navegador
Qrcp generará el código QR en la Terminal. Si desea imprimir el código QR fuera de la ventana de la Terminal, utilice --browser
bandera.
$ qrcp --browser file.txt
Este comando aún imprimirá el código QR en la Terminal, pero también mostrará el código QR en la nueva ventana de su navegador web predeterminado.
Mantener vivo el servidor
Una vez que se complete la transferencia de archivos, la conexión se cerrará automáticamente. Entonces, los otros dispositivos ya no pueden acceder a ese archivo/carpeta. Si desea transferir el mismo archivo o carpeta a varios dispositivos, mantenga activo el servidor mediante --keep-alive
. bandera:
$ qrcp --keep-alive file.txt
Obtener ayuda
Para ver la lista de subcomandos disponibles y las banderas, ejecute:
$ qrcp --help
Usage:
qrcp [flags]
qrcp [command]
Available Commands:
completion Generate completion script
config Configure qrcp
help Help about any command
receive Receive one or more files
send Send a file(s) or directories from this host
version Print version number and build information.
Flags:
-b, --browser display the QR code in a browser window
-c, --config string path to the config file, defaults to $HOME/.qrcp
-d, --fqdn string fully-qualified domain name to use for the resulting URLs
-h, --help help for qrcp
-i, --interface string network interface to use for the server
-k, --keep-alive keep server alive after transferring
-l, --list-all-interfaces list all available interfaces when choosing the one to use
--path string path to use. Defaults to a random string
-p, --port int port to use for the server
-q, --quiet only print errors
-s, --secure use https connection
--tls-cert string path to TLS certificate to use with HTTPS
--tls-key string path to TLS private key to use with HTTPS
-z, --zip zip content before transferring
Use "qrcp [command] --help" for more information about a command.