¿Cómo puedo ejecutar un archivo sin darme permisos de ejecución (con chmod u+x
) para él?
Si trato de marcar la marca de verificación 'Permitir ejecutar archivo como programa', la marca de verificación se elimina inmediatamente.
permissions
executable
kiri
fuente
fuente
Respuestas:
Verificar propiedad del archivo
Haga esto antes de cualquier otra cosa (a menos que esté seguro de ser el propietario del archivo).
Compruebe y asegúrese de poseer el archivo que está intentando ejecutar con uno de los siguientes métodos.
Gráfico
Línea de comando
Ejecute este comando en una terminal
You don't own the file
", consulte "Cambiar la propiedad del archivo" a continuación.Cambiar la propiedad del archivo
Ejecute este comando en una terminal
Archivos ejecutables
Una respuesta que encontré de un comentario de Lekensteyn sobre una respuesta a una pregunta sobre las
chmod
particiones NTFS que creo que merece su propia pregunta y respuesta, crédito total a Lekensteyn.Use este comando para archivos ejecutables (sustituyendo
/path/to/executable
con la ruta correcta):Archivos ejecutables de 64 bits:
Archivos ejecutables de 32 bits:
Si lo anterior no funciona (o genera errores de archivo no encontrado), intente usar esto antes del comando anterior
Todos los comandos anteriores no funcionarán para los scripts basados en texto (Bash, Python, Perl, etc.), ver más abajo.
Compruebe si un programa es de 64 o 32 bits
Use este comando para averiguar si un ejecutable es de 32 (
x86
) o 64 (x86-64
) bitsSi dice
i386:x86-64
, entonces es de 64 bits. Si solo dicei386
, entonces es de 32 bits.Guiones
Para los guiones basados en texto (Bash, Python, Perl, etc.), debe usar el comando especificado en la primera
#!
línea del archivo.Por ejemplo, si la primera línea del archivo es
luego ejecute estos comandos en una terminal (sustituyendo
/path/to/file
con la ruta correcta).jar
Archivos JavaPara los jar ejecutables de Java, simplemente puede usar estos comandos (sustituyendo
/path/to/jar
con la ruta correcta):Cuando no necesitas
cd "$(dirname /path/to/file)"
Estas son posibles circunstancias en las que no necesitará usar
cd "$(dirname /path/to/file)"
antes de ejecutar el programa con cualquier método: si al menos uno es verdadero, no necesitarácd
primero.apt-get
)cd
(o equivalente) para cambiar a una ruta absoluta antes de realizar cualquier operación de archivo (ejemplo:cd "$(dirname "$0")"
)./
o sin barra)Si no está seguro, agregue
cd "$(dirname "$0")"
(o equivalente) a la parte superior del script (si corresponde) o use decd "$(dirname /path/to/file)"
todos modos.fuente
Si se trata de un script de shell, puede "obtenerlo" de otro script de shell, es decir:
El "$ @" agrega los parámetros de la línea de comando, si es necesario.
Dicho esto, probablemente esta no sea la mejor solución para el problema subyacente, pero no sabemos lo suficiente sobre ese problema para ofrecer alternativas.
fuente
bash script $@