当CD上的可执行文件没有设置可执行位时,我该如何运行它?

我正在使用的教科书附带了一张CD,里面包含了一些补充应用程序。令我惊喜的是,它似乎还包含了一个Linux的安装程序。
CD上的readme文件提供了以下安装说明:
PC:Linux 1. 双击打开“LINUX”文件夹 2. 双击打开“INSTALL.BIN”文件 3. 按照屏幕上的指示进行操作
但是按照这个方法操作后,却出现了以下错误信息:
无法显示“/media/BDH DE/linux/install.bin”。该文件类型未知。
尝试通过命令行运行安装程序会导致权限错误。
ak@aux:~$ ls /media/BDH\ DE/
linux  os x  readme.txt  windows xp  windows xp - no java
ak@aux:~$ ls -l /media/BDH\ DE/linux/
total 41177
-rw-r--r-- 1 ak ak 42164549 2005-07-26 03:39 install.bin
ak@aux:~$ /media/BDH\ DE/linux/install.bin
bash: /media/BDH DE/linux/install.bin: Permission denied

虽然令我失望的是,这条消息没有告诉我缺少哪些权限,但通过快速查看ls命令的输出,我发现安装程序没有被标记为可执行文件。
那么,我该如何运行它呢?
文件的类型是:
ak@aux:~$ file /media/BDH\ DE/linux/install.bin
src/bdh-de/install.bin: POSIX shell script text executable

8这是什么类型的文件?'file /media/BDH\ DE/linux/install.bin'? - user8290
1啊哈。奇怪的是,它实际上只是一个以.bin文件扩展名命名的文本文件。真是让人恼火的误导。 - ændrük
1是的,我明白了。所以问题解决了吗?如果这是一个shell脚本,你现在可以执行类似于'bash /media/BDH\ DE/linux/install.bin'这样的命令了吗? - user8290
5个回答

如果问题是CDROM被挂载为'noexec',您可以重新挂载为可执行。
sudo mount -o remount,exec /media/BDH\ DE/

是的,没错,非常好,运行得很顺利。 - Silver Moon

查看给定的文件是什么类型的bin扩展名。
file $filename

如果不是二进制数据,那就是文本。所以使用哪个程序来处理这个文件?

head $filename

第一行可能会写成#!/bin/bash。在这种情况下运行。
bash $filename

执行它。或者使用为该二进制文件编写的任何程序,例如Python。


我仍然认为如何双击文件并运行它。如果文件扩展名为“.bin”,它仍然拒绝运行。 - DTdev

如果不是脚本/文本而是二进制文件:
对于64位程序:
/lib64/ld-linux-x86-64.so.2 ./program.bin

32位程序:
/lib/ld-linux.so.2 ./program.bin

来源:

"要执行二进制文件,请使用 /lib64/ld-linux-x86-64.so.2 ./program.bin 来运行 64 位程序,使用 /lib/ld-linux.so.2 ./program.bin 来运行 32 位程序。" - Lekensteyn 在问题 https://askubuntu.com/a/17311/52853 上的评论,2012 年 4 月 13 日


手动使用umask=000挂载CDROM,即:
sudo mount  -o umask=000 /dev/sdXY /mount_point

你可以使用其中之一:
bash -c <command>

或者

sh -c <command>