问题描述
我不知道确切的可执行文件扩展名是什么。是.deb
还是.tar.gz
?
最佳解决办法
在Windows中没有像”.exe”文件那样的标准File-Extention。
在Linux上几乎任何文件都可以执行。文件结尾只描述(但不一定)文件”executed”的内容或方式。
例如,shell脚本以.sh结尾,并通过bash shell为”executed”。
在你的问题中,你要求.deb和.tar.gz嗯,.deb文件在你的系统上安装软件(请小心!).tar.gz文件是一个压缩文件,如.zip,你可以从视窗。
次佳解决办法
我将通过以下方式总结系统:
Linux extension |Windows Equivalent |Short description
------------------------------------------------------------
.so, .o | .dll | Object that can be loaded at runtime (Similar to DLL)
.a | .lib | Static library
[none], .elf(rare) | .exe, .com(rare) | Linux executables
.bin(rare) | |
.sh | .bat | Shell script
.exe | .exe | Mono application, Wine application
.deb | .msi | Installer package for Debian/Ubuntu releases
| | (Though .deb is much more powerful with
| | native support for dependencies and repos). Note that .deb is actually a .ar archive with a special control file, a special file order, and a different extension.
.rpm | .msi | Installer package for RedHat/CentOS releases.
.tar.gz, .tar, .gz | .zip | Compressed files that can contain a program or any other data, like images, documents, etc
.ko | .sys | Drivers and kernel modules are loaded into the Linux kernel and have more hardware access than other programs.
.sh, .php, .py, etc| .bat, .vbs | Linux is capable of running any file that it has an interpreter for.
| | A line at the top of the file called the shebang specifies what interpreter to run the file with.
| | Windows only really runs .bat files in this way.
在第一行以#!
(称为shebang或hashbang)开头的任何文件都只是一个脚本。 shebang之后的路径是需要解析脚本的程序(可执行文件)的路径,假设已使用chmod a+x filename
在文件上设置了执行权限。
因此,回答您的原始问题,没有延伸,或很少,它是.elf
或.bin
。
这已经成为社区Wiki,所以任何人都可以添加一个条目。
第三种解决办法
可执行文件的概念在unix /linux中与Windows不同。
Windows
以.exe
或.com
结尾的任何内容都将成为可执行文件。
的Linux /Unix
每个文件都有一个可执行位,因此可以执行任何文件,这与Windows不同。要查看文件是否可执行,您可以检查其属性(“权限”选项卡),甚至可以在终端中看到它们标记(它们都标有*)。
即使是文本文件(如shell脚本)也可以设置其可执行位,并作为一个运行。
第四种办法
要了解UNIX操作系统认为特定文件的类型是什么,请使用file命令:
$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, statically linked, stripped
在上面的例子中,我给出了程序’ls’的路径,你将替换为你的文件的路径。
脚本文件如下所示:
$ file script.sh
script.sh: Bourne-Again shell script text
随机文本文件:
$ file textfile
textfile: ASCII text
存档文件:
$ file rsync-3.0.6.tar.gz
rsync-3.0.6.tar.gz: gzip compressed data, from Unix
如果碰巧在UNIX盒子上放置一个Windows程序,它甚至足够聪明地正确识别Windows程序:
$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows
当它无法弄清楚文件是什么(但能够打开它)时,它会将其称为数据:
$ file myrandom
myrandom: data
第五种办法
Linux上的文件执行与文件名或扩展名完全无关。任何文件都可能被执行,前提是它由内核的binfmt
机制处理(并且其可执行权限已设置)。
可执行文件的最常见格式是ELF,尽管可以编译某些内核以支持旧的a.out
格式。 (有关完整的技术细节,请查看binfmt_elf.c
。)
另一种常见的机制是“Shebang”系统,由binfmt_script
处理,它在文件的开头查找#!/path/to/interpreter
。
binfmt_misc
允许注册其他处理程序,如记录的here。
如果您喜欢做一些内核编程,您甚至可以使用write your own。
虽然没有直接关系,但file
命令应该告诉您文件是ELF可执行文件还是其他内容。
命名约定与文件的可执行状态无关(除非它用于binfmt_misc
注册)。他们只是会议。通常,在Linux上找到的.exe
文件可以是mono application,将.exe
扩展作为来自Windows /.Net世界的约定。
当您想要”run”文件时可能发生的另一个方面是使用您使用寄存器扩展的文件资源管理器工具,以便能够启动将打开这些文件的程序。如果您双击.txt
,.tar.gz
或.deb
会发生这种情况,例如:文件不是可执行文件也不是执行文件,但您使用double-click选择启动哪些可执行文件来打开这些文件。
第六种办法
在Windows中,.exe文件是一个计算机文件,以扩展名”.exe”结尾,通常称为可执行文件。当单击exe文件时,内置例程会自动执行可将多个函数设置为运动的代码。 Exe文件通常用于在Windows操作系统中安装文件。
此外,你有.tar文件,通常称为压缩文件.Linux版本,如Ubuntu在各种软件发行版中使用显著的功能,大多数软件源代码以tar.gz格式提供。从而你可以假设tar。 gz是一种众所周知的.tar格式,用于存档。
另一方面,在Ubuntu中,.deb文件格式的行为更像Windows中的.exe文件。当您打开它时,软件中心会处理它的代码并安装它包含的程序,例如可执行文件。
即使您仍然可以从源格式(tar.gz)安装软件和软件包,最适合安装软件的格式是.deb格式。以Ubuntu软件中心为例;它包含的所有应用程序实际上都是.deb文件。一般来说,在linux中,几乎每种文件格式(包括.deb和tar.gz以及众所周知的bash文件.sh)都可以表现为可执行文件,这样你就可以了可以安装包或软件。
第七种办法
Windows中没有与exe文件扩展名等效的表示文件是可执行的。相反,可执行文件可以具有任何扩展名,并且通常根本没有扩展名。
Linux /Unix使用文件权限来指示是否可以执行文件。具体来说,有一个执行文件权限,告诉系统允许执行此文件。但是,缺少此权限并不表示该文件不是可执行文件;仅仅是不允许相关用户尝试执行它。同样,此权限的存在并不总是表明该文件是有效的可执行文件。
Linux /Unix有一个名为ELF的二进制可执行文件格式,它相当于PE(Windows)或MZ /NE(DOS)二进制可执行格式,通常带有扩展名.exe
但是,其他类型的文件可以是可执行的,具体取决于shell。通常,如果您尝试执行系统无法识别为二进制可执行文件的文件(例如,ELF格式),则由当前shell解释器解释。这与Windows或DOS中的批处理文件具有相同的效果,但同样,它不是标识其类型或如何执行它的扩展。
Shell文件可以选择以hashbang开头(文件中的前两个字符是#!
,后跟解释器的路径),在这种情况下,不是使用当前shell解释器解释文件的其余部分,它可以启动备用shell或解释器执行文件。因此,您可以使用任何解释语言编写脚本,并在尝试执行脚本时仍使用正确的解释器运行该脚本。