Entonces, recientemente descargué una instalación Ubuntu de Linux para Windows porque quería aprender a usar un shell bash. Lo he estado disfrutando hasta ahora, pero me preguntaba si había alguna manera de hacer lo anterior. Digamos que tengo iTunes instalado en mi computadora y quiero abrirlo desde mi terminal Linux. ¿Es eso posible? Intenté ir a la carpeta del escritorio en la terminal y abrir los archivos .lnk, pero simplemente me arroja un mensaje "no se puede ejecutar el archivo binario: error de formato Exec". ¿Alguien sabe si es posible?
Respuesta1
Sí, WSL admite el inicio de aplicaciones de Windowsejecutables(como iTunes) desde dentro del shell. Sin embargo, como se mencionó en los comentarios, lnk
los archivos sonnoapoyados, ya que no sonejecutables. Ellos sonEnlacesa ejecutables.
WSL también es lo suficientemente bueno como para agregar (de forma predeterminada) su ruta de Windows a su ruta de Linux. Entonces, para las aplicaciones que se encuentran en la ruta (por ejemplo notepad.exe
), puede iniciarlas directamente con el appname.exe
formato.
Para las aplicaciones que no están en la ruta (por ejemplo itunes.exe
), deberá determinar la ubicación del archivo real .exe
(ejecutable) e iniciarlo con la ruta completa. En realidad, esto es lo mismo que para cualquier ejecutable de Linux en Linux o cualquier ejecutable de Windows en Windows PowerShell o CMD.
Para encontrar la ruta completa a iTunes, simplemente haga clic derecho en el lnk
archivo en el Explorador y elija"Propiedades". El"Objetivo"El campo tendrá algo como C:\Program Files\iTunes\iTunes.exe
.
Como se mencionó anteriormente, si estuviera intentando iniciar esto en Windows PowerShell o el intérprete CMD (los "equivalentes" de Windows bash
en Linux), aún necesitaría la ruta completa, por lo que ejecutaría:
C:\Program Files\iTunes\iTunes.exe
Para iniciar esa ruta particular en bash
WSL, usaría:
/mnt/c/Program\ Files/iTunes/iTunes.exe
Si necesita ayuda para convertir la ruta de Windows a la ruta de Linux, existe un comando para ello:
wslpath 'C:\Program Files\iTunes\iTunes.exe'
Para obtener información detallada sobre la interoperabilidad de Windows/WSL, consulteeste doctor.
Respuesta2
WSL puede iniciar archivos binarios de Windows de forma nativa a través de algunosinteroperabilidady el uso debinfmt_misc
LNK
OTOH no es un archivo ejecutable, sino un tipo de archivo que almacena metadatos para que Windows Shell se vincule a cualquier tipo de archivo, no solo a archivos ejecutables. Como es un archivo normal, debes abrirlo con algunas aplicaciones. En cmd, la forma de abrir cualquier archivo con el programa asociado predeterminado es usarstart
. Entonces, en WSL anterior puedes hacer así
cmd.exe /c start ~/Desktop/iTunes.lnk
Obviamente %Windir%\System32
debe estar en su ruta (lo cual se hace de forma predeterminada) o tendrá que arreglar su entorno WSL. El equivalente en PowerShell esStart-Process
oInvoke-Item
powershell.exe -Command Start-Process ~/Desktop/iTunes.lnk
powershell.exe -Command Invoke-Item ~/Desktop/iTunes.lnk
Para la mayoría de los tipos de archivos también puedes usar explorer.exe
directamente
explorer.exe ~/Desktop/iTunes.lnk
Sin embargo, en WSL2 tienes un nuevo comando para hacer eso.
wslview ~/Desktop/iTunes.lnk
Algunas otras soluciones comienzanwsl-abiertoyabrir
Ver
Como ejemplo, cualquiera de los siguientes comandos abrirá el directorio actual en el Explorador
explorer.exe .
wslview .
powershell.exe -Command Start-Process .
powershell.exe -C Invoke-Item .
cmd /c start .
o para abrir algunos archivos pdf
explorer.exe my.pdf
wslview my.pdf
powershell.exe -Command Start-Process my.pdf
powershell.exe -C Invoke-Item my.pdf
cmd /c start my.pdf