Ich weiß nicht, wie genau die ausführbare Dateierweiterung lautet. Ist es .deb
oder .tar.gz
?
executable
user54905
quelle
quelle
.exe
Erweiterungen zu tun , die für native ausführbare Dateien nicht benötigt werden. Ersteres erklärt den Inhalt von/dev
; Letzteres ist wegen ausführen Berechtigungen auf die Prüfung der innerhalb einer Datei und Vertrauen , um zu bestimmen , welche Art von Datei es sich handelt.Antworten:
Es gibt keine Standard-Dateierweiterung wie eine ".exe" -Datei in Windows.
Unter Linux kann fast jede Datei ausführbar sein. Die Dateiendung beschreibt nur (aber nicht unbedingt), was oder wie eine Datei "ausgeführt" wird.
Beispielsweise endet ein Shell-Skript mit .sh und wird über die Bash-Shell "ausgeführt".
In Ihrer Frage fragen Sie nach .deb und .tar.gz. Nun, die .deb-Datei installiert die Software auf Ihrem System Windows.
quelle
.deb
Dateien sind in der Regel NICHT ausführbar: Sie sind weder ELF- noch "she-bang" -Skripte, und es ist unwahrscheinlich, dass sie bei binfmt registriert werden. Selbst mit ausführbaren Berechtigungen würde der Kernel nicht wissen, was er damit machen soll. Die Tatsache, dass Ihr Dateiexplorer für das Öffnen von Dateien mit einer bestimmten Anwendung basierend auf der Erweiterung registriert werden kann, hat nichts damit zu tun, dass sie ausführbar sind (im Hinblick auf die Dateiberechtigung oder im Hinblick auf die Ausführung im Kernel-Binärformat)..deb
ist eher eine.msi
Datei als eine.exe
Datei.Ich würde das System folgendermaßen zusammenfassen:
Jede Datei, die
#!
in der ersten Zeile mit "shebang" oder "hashbang" beginnt , ist nur ein Skript. Der Pfad nach dem shebang ist ein Pfad zu dem Programm (ausführbar), das das Skript analysieren muss, vorausgesetzt, dass die Ausführungsberechtigung für die Datei mit gesetzt wurdechmod a+x filename
.Beantworten Sie daher Ihre ursprüngliche Frage, es gibt keine Erweiterung oder selten ist es
.elf
oder.bin
.Dieses Community-Wiki wurde erstellt, sodass jeder einen Eintrag hinzufügen kann.
quelle
Das Konzept einer ausführbaren Datei unterscheidet sich in Unix / Linux von Windows.
Windows
Alles, was in einer ausführbaren Datei endet
.exe
oder.com
zu einer solchen wird.Linux / Unix
Jede Datei hat ein ausführbares Bit, sodass im Gegensatz zu Windows jede Datei ausgeführt werden kann. Um festzustellen, ob eine Datei ausführbar ist, können Sie ihre Eigenschaften überprüfen (Registerkarte Berechtigungen) oder sie sogar im Terminal anzeigen (alle sind mit einem * gekennzeichnet).
Sogar für Textdateien (wie Shell-Skripte) können die ausführbaren Bits festgelegt und als eine ausgeführt werden.
quelle
#!/bin/bash
zum beispiel) am anfang der datei festlegt, welches programm die datei ausführt.man magic
, ELFman elf
und Hash-Bang-Zeileman execve
)Um herauszufinden, was ein UNIX-Betriebssystem für einen bestimmten Dateityp hält, verwenden Sie den Befehl file:
Im obigen Beispiel gebe ich den Pfad zum Programm 'ls' an, den Sie durch den Pfad Ihrer Datei ersetzen würden.
Eine Skriptdatei würde folgendermaßen aussehen:
Eine zufällige Textdatei:
Eine Archivdatei:
Es ist sogar klug genug, um ein Windows-Programm richtig zu identifizieren, falls Sie eines auf Ihrer UNIX-Box herumliegen haben:
Und wenn es nicht herausfinden kann, was eine Datei ist (aber sie öffnen kann), nennt es sie Daten:
quelle
Die Dateiausführung unter Linux hängt überhaupt nicht mit dem Dateinamen oder der Dateierweiterung zusammen. Jede Datei kann möglicherweise ausgeführt werden, vorausgesetzt, sie wird vom
binfmt
Mechanismus des Kernels verarbeitet (und die ausführbaren Berechtigungen sind festgelegt).Das gebräuchlichste Format für ausführbare Dateien ist ELF , obwohl einige Kernel zur Unterstützung des alten
a.out
Formats kompiliert werden können . (Vollständige technische Details finden Siebinfmt_elf.c
hier.)Ein weiterer üblicher Mechanismus ist das "Shebang" -System,
binfmt_script
das#!/path/to/interpreter
am Anfang der Datei gesucht wird.binfmt_misc
ermöglicht die Registrierung anderer Handler, wie hier dokumentiert .Wenn Sie Lust auf ein bisschen Kernel-Programmierung haben, können Sie sogar Ihre eigene schreiben .
Obwohl nicht direkt verwandt, sollte der
file
Befehl Ihnen mitteilen, ob eine Datei eine ELF-ausführbare Datei oder etwas anderes ist.Die Namenskonvention hat nichts mit dem ausführbaren Status einer Datei zu tun (außer wenn sie für die
binfmt_misc
Registrierung verwendet wird). Das sind nur Konventionen. In der Regel handelt es sich bei einer.exe
unter Linux gefundenen Datei um eine Mono-Anwendung , deren.exe
Erweiterung als Konvention aus der Windows / .Net-Welt stammt.Der andere Aspekt, der auftreten kann, wenn Sie eine Datei "ausführen" möchten, besteht darin, über das Dateiexplorer-Tool zu verfügen, das Sie mit Registererweiterungen verwenden, um ein Programm starten zu können, mit dem diese Dateien geöffnet werden. Dies ist , was auf ein Doppelklick , wenn Sie passieren würde
.txt
,.tar.gz
oder.deb
, zum Beispiel: Die Dateien sind nicht ausführbaren Dateien noch ausgeführt, aber was Sie verwenden , wählt einen Doppelklick auf die ausführbare Datei zu starten , um diese Dateien zu öffnen.quelle
In Windows ist eine .exe-Datei eine Computerdatei, die mit der Erweiterung ".exe" endet, die üblicherweise als ausführbare Datei bezeichnet wird. Wenn man auf eine exe-Datei klickt, führt eine eingebaute Routine automatisch Code aus, der mehrere Funktionen in Gang setzen kann. Exe-Dateien werden normalerweise zum Installieren von Dateien im Windows-Betriebssystem verwendet.
Darüber hinaus verfügen Sie über .tar-Dateien, die im Allgemeinen als komprimierte Dateien bezeichnet werden. Linux-Versionen wie Ubuntu verwenden häufig Funktionen in verschiedenen Software-Distributionen, wobei die meisten Software-Quellcodes im tar.gz-Format zur Verfügung gestellt werden. gz ist eine Form des bekannten .tar-Formats, das zur Archivierung verwendet wird.
In Ubuntu ist das .deb-Dateiformat dasjenige, das sich eher wie die .exe-Datei in Windows verhält. Wenn Sie es öffnen, verarbeitet das Software Center den Code und installiert das darin enthaltene Programm, z. B. eine ausführbare Datei.
Obwohl Sie weiterhin Software und Pakete aus dem Quellformat (tar.gz) installieren können, ist das .deb one-Format das am besten geeignete Format für die Installation von Software. Nehmen Sie als Beispiel das Ubuntu Software Center. Alle darin enthaltenen Anwendungen sind tatsächlich .deb-Dateien. Im Allgemeinen kann sich unter Linux fast jedes Dateiformat (einschließlich .deb und tar.gz sowie der bekannten bash-Dateien .sh) als ausführbare Datei verhalten, sodass Sie kann damit Pakete oder Software installieren.
quelle
Es gibt keine Entsprechung zur Dateierweiterung exe in Windows, die angibt, dass eine Datei ausführbar ist. Stattdessen können ausführbare Dateien eine beliebige Erweiterung haben und haben normalerweise überhaupt keine Erweiterung .
Linux / Unix verwendet Dateiberechtigungen , um anzuzeigen , ob eine Datei kann ausgeführt werden. Insbesondere gibt es eine Berechtigung zum Ausführen von Dateien, die dem System mitteilt, dass diese Datei ausgeführt werden darf . Das Fehlen dieser Berechtigung bedeutet jedoch nicht, dass die Datei keine ausführbare Datei ist. lediglich, dass der betreffende Benutzer nicht versuchen darf , es auszuführen. Ebenso bedeutet das Vorhandensein dieser Berechtigung nicht immer, dass die Datei eine gültige ausführbare Datei ist.
Linux / Unix hat ein binäres ausführbares Dateiformat namens ELF, das den binären ausführbaren Formaten PE (Windows) oder MZ / NE (DOS) entspricht, die normalerweise die Erweiterung .exe tragen
Abhängig von der Shell können jedoch auch andere Dateitypen ausführbar sein. Wenn Sie versuchen, eine Datei auszuführen, die das System nicht als binäre ausführbare Datei erkennt (z. B. ELF-Format), wird sie normalerweise vom aktuellen Shell-Interpreter interpretiert. Dies hat den gleichen Effekt wie Batch-Dateien in Windows oder DOS, nur dass es nicht die Erweiterung ist, die den Typ oder die Art der Ausführung angibt.
Shell-Dateien können optional mit einem Hash-Bang beginnen (auf die ersten beiden Zeichen in der Datei
#!
folgt ein Pfad zu einem Interpreter). In diesem Fall wird der Rest der Datei nicht mit dem aktuellen Shell-Interpreter interpretiert, sondern es wird eine alternative Shell oder ein Interpreter gestartet Führe die Datei aus. Auf diese Weise können Sie ein Skript in einer beliebigen interpretierten Sprache haben und es dennoch mit dem richtigen Interpreter ausführen, wenn Sie versuchen, das Skript auszuführen.quelle
EXE- und DLL-Dateien sind portable ausführbare Dateien. Diese basieren auf den PE / COFF-Unix-Dateien.
Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Portable_Executable .
In Ubuntu gibt es keine spezifische Erweiterung für eine ausführbare Datei. Dies sind in der Regel Dateien, die nach der Anwendung benannt sind, auf die sie sich beziehen.
Der wichtige Faktor ist, dass für diese Dateien das ausführbare Bit gesetzt ist. Wenn Sie über ein Farbterminal verfügen, werden Sie feststellen, dass diese bei Verwendung von eine andere Farbe haben
ls
.Im Unix-Dateisystem werden ausführbare Binärdateien in der Regel an einem eigenen Speicherort gespeichert.
Andere Anwendungsressourcen können in / usr / lib / oder / usr / share / gespeichert werden.
Eine Deb-Datei entspricht korrekter einer MSI-Datei in Windows (dh einem Paketinstallationsprogramm).
Im Allgemeinen enthalten tar.gz-Dateien oder bz2-Dateien Quellcode, aus dem eine Anwendung erstellt werden kann
quelle
Ubuntu, das der EXE / .com-Datei entspricht, ist eine Datei ohne Dateierweiterung. Normalerweise werden aus Gründen der Übersichtlichkeit einige Erweiterungen wie .bin, .run usw. hinzugefügt
Es gibt mehrere Alternativen für .bat-Dateien (fast alle Dateien), die beliebteste ist .sh
.deb ist nur eine Archiv-Binärdatei (ähnlich wie .msi in Windows) mit Debian-Standards
.tar.gz ist nur ein in Ubuntu gebräuchliches Archivierungsformat
quelle
Jeder Dateiname kann unabhängig von der Erweiterung als ausführbar festgelegt werden, die Datei muss jedoch über die entsprechenden Berechtigungen verfügen. Sie können die Berechtigung erteilen, indem Sie in Nautilus mit der rechten Maustaste auf die Datei klicken, auf Eigenschaften klicken und das Kontrollkästchen "Datei als Programm ausführen lassen" aktivieren:
quelle
Debian-Paket für Linux und TAR-Archiv, komprimiert mit dem Standard-Komprimierungsalgorithmus GNU zip (gzip); enthält eine oder mehrere komprimierte Dateien; Wird häufig unter Unix-Betriebssystemen zum Packen von Dateien, Programmen und Installationsprogrammen verwendet.
HINWEIS : tar.gz - Dateien müssen zuerst dekomprimiert werden und dann erweitert , um ein TAR - Dienstprogramm. Sie enthalten die Dateitypen .TAR und .GZ.
quelle