我有一个可执行文件,但不知道它是什么类型或格式。当我像这样执行时
$chmod +x xfile
$./xfile
表明
Permission denied
当我以超级用户身份运行时
$sudo ./xfile
表明
sudo: ./xfile: command not found
我是 Linux 新手,请告诉我如何执行它。
答案1
奇怪的是,这里的情况正是如此。
首先,尝试找出该文件是什么:
file xfile
文件命令查看文件内部并根据某些“魔法”尝试找出该程序的作用。
根据您的描述,我猜想这是一个 shell 可执行文件,它试图执行另一个程序。如果是这样,为什么不使用以下方式发布 shell 可执行文件的代码:http://paste.ubuntu.com。
答案2
遇到了同样的问题。在我的例子中,可执行文件存储在不同的驱动器上,这就是 chmod+x 不起作用的原因。
我将可执行文件复制到 Linux 目录(例如桌面),使用 chmod+x 设置权限,使用“./”运行可执行文件,然后它就成功了:)
答案3
问题是,除非设备的文件系统像ext3
或ext4
,(对您来说可能是 FAT32),否则文件系统不会存储有关文件的太多元数据,包括可执行位。
当您这样做时chmod +x yourfile
,ls -la yourfile
您会注意到可执行位实际上尚未设置。
这里的解决方案是cp yourfile ~/yourfile; chmod +x ~/yourfile; ~/yourfile
,因为安装Linux的文件系统具有可执行权限。