Що таке еквівалент "exe-файлу"?


47

Я не знаю, що таке точне розширення файлу. Це .debчи .tar.gz?


13
Не відповідь, але хотілося б додати ВСЕ, що в LINUX - це ФАЙЛ, тому розширення як .exe ніколи не має значення.
atenz

15
@tijybba Філософія дизайну "все є файлом" абсолютно не пов'язана з .exeрозширеннями, які не потрібні для власних виконуваних файлів. Перший пояснює зміст /dev; остання пояснюється дозволами на виконання та залежністю від вивчення внутрішньої частини файлу для визначення типу файлу.
Елія Каган

@ Eliah Каган - Це було тільки основною інформацією , так як розширення В Windows необхідно для виконання, а в Linux це не так , оскільки право виконувати , то вона вимагає трохи більше ноу - хау Судо -User доступ і Підкладні проблеми безпеки , на яку я здогадався, хтось пояснить у відповідь як свою останню частину, якщо вона взагалі потрібна, тому я розмістив її як коментар, а не відповідь.
atenz

4
@tijybba Але все, що є файлом, насправді не має нічого спільного з темою цього питання, чи не так?
Елія Каган

2
Я припускаю , що я неправильно зрозумів , що участь в питанні, в якому говориться , «що таке EXE файл знаходиться в Ubuntu?», Я розглянув виконуваний файл , але тепер з жадібним допомогою, здається , це означало «що є EXE - файл в Ubuntu?». Якщо це вкрай недоречно, дайте мені знати, що буду радий видалити його. (Помилки - це великий досвід навчання: D).
atenz

Відповіді:


42

У Windows немає стандартного файлового розширення, наприклад, ".exe".

В Linux майже будь-який файл може бути виконаним. Закінчення файлу просто описує (але не обов'язково), що або як файл "виконується".

Наприклад, скрипт оболонки закінчується на .sh і "виконується" через оболонку bash.

У своєму запитанні ви запитуєте .deb і .tar.gz. Файл .deb встановлює програмне забезпечення у вашій системі (будь ласка, будьте обережні!), А файл .tar.gz - це стислий файл на зразок .zip, про який ви могли знати. Windows.


1
Отже, .deb - це .exe-файл!
користувач54905

13
@Nick, .debфайли НЕ є виконуваними: вони не є ні ELF, ні "she-bang", і вони навряд чи будуть зареєстровані в binfmt. Навіть із виконаними правами, ядро ​​не знає, що з ними робити. Те, що ваш провідник файлів може бути зареєстрований для відкриття файлів із певним додатком на основі розширення, не має нічого спільного з тим, щоб вони виконувались (з точки зору дозволу на файли або з точки зору виконання бінарного формату ядра).
Бруно

4
.deb-файл також більше схожий на .zip, ніж на .exe. Справа в тому, що .deb не виконує себе , він витягується, інтерпретується та встановлюється деяким іншим додатком.
Rafał Cieślak

5
Іншим додатком, як правило, є Центр програмного забезпечення, який виступає програмою установки. Linux менше залежить від розширень порівняно з Windows, а тому вирішує виконання, виходячи з дозволів, а не розширення.
tyjkenn

33
.debбільше схожий на .msiфайл, ніж на .exeфайл.
декрет

79

Я підсумував би систему таким чином:

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, .cmd, .vbs,    | Linux is capable of running any file that it has an interpreter for. 
                   |   .js                |   A line at the top of the file called the shebang specifies what interpreter to run the file with. 
                   |                      |   Windows only supports .bat and .cmd files as Batch files, and .vbs (vbscript) and .js (JScript, not to be confused with JavaScript) via the Windows Script Host (WSH).

Будь-який файл, який починається з #!(називається шебанг чи хешбанг) ​​у першому рядку, є лише сценарієм. Шлях після shebang - це шлях до програми (виконуваної програми), якій потрібно проаналізувати сценарій, припускаючи, що дозвіл на виконання встановлено у файлі з chmod a+x filename.

Тому, відповідайте на своє первісне запитання, розширення немає, або рідко воно є .elfабо .bin.

Це було зроблено спільнотою Wiki, тому кожен бажаючий може додати запис.


2
Я ніколи не бачив розширення .elf, але бачив .bin розширення досить часто.
Кальмарій

1
Хоча інші відповіді зосереджуються на тому, що "будь-який" файл може бути виконуваним, ця відповідь дійсно б'є нігтями по голові, тоді як сказати, що "що-небудь" може бути виконуваним, насправді не є інформаційним чи правдивим, але, скоріше, є винятковим. Я міг би перейменувати будь-який файл у Windows на .exe, і він спробує виконати його, але не обов'язково працювати, в Linux це те саме, якщо він не призначений для виконання, його не буде працювати ... Моя проблема багато разів завантажує пакет, і не дуже розумієш, з чого почати, але, звичайно, rtfm.
TrySpace

Вам слід додати розширення .bin (як еквівалент Windows .exe)
Dani-Br

@ Dani-Br Це публікація вікі-спільноти, це означає, що інші бажають редагувати її, і у вас є достатня репутація для цього (за номером 101). Я зараз додав .bin.
ζ--

Це не розширення, але мені було корисно знати, що формат "PE" в Windows є еквівалентом формату "ELF" в Linux думці
Бухгалтер,

23

Поняття виконуваного файлу відрізняється в unix / linux, ніж Windows.

Windows

Все, що закінчується .exeабо .comстає виконавчим файлом.

Linux / Unix

У кожному файлі є виконавчий біт, тому будь-який файл може бути виконаний, на відміну від Windows. Щоб побачити, чи файл виконується, ви можете перевірити його властивості (вкладка Дозволи) або навіть побачити їх, позначені в терміналі (усі вони позначені символом *).

Навіть текстові файли (як сценарії оболонки) можуть мати встановлені виконувані біти і працювати як один.


4
також варто додати, що у випадку з текстовими файлами, shebang ( #!/bin/bashнаприклад) на початку файлу встановлює, яка програма виконує файл.
jackweirdy

Існують окремі виконувані біти для користувача, групи та інших. Використання цих бітів може обмежити, хто може виконувати програму. Для SUID та SGID існують додаткові біти, які викликають запуск програми як користувача або групи, яка володіє файлом.
BillThor

Вище є деякі неточності: 2) "у кожному файлі є виконавчий біт": є три виконувані біти (власник, група та інші), тому один може дозволити собі, але не іншим, виконувати файл. Існує також встановлений біт для "Execute-as-owner" та setgid "Execute-as-group". 2) "будь-який файл може бути виконаний": не так. біти дозволу є необхідною, але недостатньою умовою для успішного виконання файлу. Негайний збій відбудеться, наприклад, якщо файл насправді не може бути завантажений і запущений (Посилання: магічні числа файлів man magic, ELF man elfта лінія хеш- man execve
бангу

16

Щоб дізнатися, що думає операційна система UNIX типу певного файлу, ви використовуєте команду файлу:

$ 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

Це навіть досить розумно, щоб правильно визначити програму Windows, якщо вам трапиться один на вашій коробці UNIX:

$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows

І коли він не може зрозуміти, що таке файл (але може відкрити його), він називає його даними:

$ file myrandom
myrandom: data

1
Не дуже відповідь, але хороша
сторона

11

Виконання файлу в Linux зовсім не пов'язане з ім'ям файлу або розширенням. Будь-який файл потенційно може бути виконаний за умови, що ним обробляється binfmtмеханізм ядра (і встановлені його виконавчі права).

Найпоширеніший формат для виконуваного файлу - ELF , хоча деякі ядра можуть бути складені для підтримки старого a.outформату. (Для отримання повної технічної інформації, binfmt_elf.cде їх шукати.)

Ще один поширений механізм - система "Шебанг" , якою керує binfmt_script, яка шукає #!/path/to/interpreterна початку файлу.

binfmt_miscдозволяє здійснювати реєстрацію інших обробників, як це зафіксовано тут .

Якщо ви хочете зробити трохи програмування ядра, ви навіть можете написати своє .

Хоча це не пов'язане безпосередньо, fileкоманда повинна сказати вам, чи є файлом виконуваний файл ELF чи щось інше.

Конвенція про іменування не має нічого спільного з статусом файлу, що виконується (крім випадків, коли він використовується для binfmt_miscреєстрації). Вони просто умовності. Як правило, .exeфайл, знайдений в Linux, може бути моно-додатком , отримуючи .exeрозширення як умовне позначення, що надходить із світу Windows / .Net.

Інший аспект, який може статися, коли ви хочете "запустити" файл, - це мати інструмент провідника файлів, який ви використовуєте розширення реєстру, щоб мати змогу запустити програму, яка відкриє ці файли. Це може статися, якщо ви двічі клацніть на a .txt, .tar.gzабо .deb, наприклад: файли не виконуються і не виконуються, але те, що ви використовуєте для подвійного клацання, вибирає, який виконуваний файл для запуску відкривати ці файли.


Я думаю, що це краще, як коментар у бік однієї з більш включених відповідей.
ζ--

@ObsessiveFOSS, але чи заслуговує це скорочення? Ніхто не згадував моно до моєї відповіді. Тут жодна відповідь не говорить про те, як справді працюють виконувані файли Linux (див. Мій коментар про binfmt щодо прийнятої відповіді) у будь-якому випадку.
Бруно

Я не спровокував. Я відчував, що голосування має залишатися таким, яким є.
ζ--

@ObsessiveFOSS, немає проблем. Я також помітив, що питання було відредаговано з моменту відповіді на нього, трохи змінивши його значення (спочатку я зрозумів це як "у мене є файл EXE, я не можу його запустити ...") і зробивши свою відповідь меншою актуально дійсно.
Бруно

ГАРАЗД. Нема проблем.
ζ--

2

У Windows файл .exe - це комп'ютерний файл, який закінчується розширенням ".exe", відомим як виконуваний файл. Коли ви клацаєте на файл EXE, вбудована програма автоматично виконує код, який може привести в рух кілька функцій. Файли Exe зазвичай використовуються для встановлення файлів в операційній системі Windows.

Крім того, у вас є .tar файли, загальновідомі як стислі файли. Версії Linux, такі як Ubuntu, широко використовують функції в різних дистрибутивах програмного забезпечення, при цьому більшість вихідних програм програмного забезпечення доступні у форматі tar.gz. gz - форма добре відомого формату .tar, яка використовується для архівації.

У Ubuntu, з іншого боку, формат файлу .deb - це той, який більше схожий на файл .exe у windows. Коли ви відкриваєте його, центр програмного забезпечення обробляє його код і встановлює програму, яку він містить, наприклад виконуваний файл.

Незважаючи на те, що ви все ще можете встановити програмне забезпечення та пакети з вихідного формату (tar.gz), найкращим форматом для встановлення програмного забезпечення є .deb one.Взяйте за приклад програмний центр Ubuntu; всі додатки, які він містить, насправді .deb файли. Загалом, в Linux, майже кожен формат файлу (включаючи .deb і tar.gz, а також добре знаючі файли bash .sh) може вести себе як виконуваний файл, так що ви можна встановити пакунки або програмне забезпечення з цим.


5
Я вважаю за краще порівняти файли .deb в системах, отриманих від Debian, з файлами .msi для Microsoft Installer…
MvG

це правильно! :)
dlin

2

У Windows немає еквівалента розширення файлу exe, щоб вказати, що файл виконується. Натомість виконувані файли можуть мати будь-яке розширення і, як правило, взагалі не мають розширення .

Linux / Unix використовує дозволи файлів, щоб вказати, чи може бути виконаний файл . Зокрема, існує дозвіл на виконання файлу, який повідомляє системі, що цей файл дозволено виконувати. Однак відсутність цього дозволу не означає, що файл не є виконуваним; тільки що відповідний користувач не має права намагатися виконати його. Так само наявність цього дозволу не завжди вказує на те, що файл є дійсним виконуваним файлом.

Linux / Unix має бінарний формат виконуваного файлу, який називається ELF, що є еквівалентом бінарних форматів PE (Windows) або MZ / NE (DOS), які зазвичай несуть розширення .exe

Однак інші типи файлів можуть виконуватися, залежно від оболонки. Як правило, якщо ви намагаєтеся виконати файл, який система не розпізнає як бінарний виконуваний файл (наприклад, формат ELF), він інтерпретується поточним інтерпретатором оболонки. Це виконує той самий ефект, що і пакетні файли в Windows або DOS, за винятком того, що це не розширення, яке визначає його тип або спосіб його виконання.

Файли оболонки необов'язково можуть починатися з хешбангу (перші два символи у файлі #!супроводжуються шляхом до інтерпретатора). У цьому випадку, замість того, щоб решта файлу інтерпретувати за допомогою поточного інтерпретатора оболонки, вона може запустити альтернативну оболонку або інтерпретатор для виконати файл. Таким чином, ви можете мати скрипт на будь-якій інтерпретованій мові, і все-таки він повинен працювати з правильним інтерпретатором при спробі виконання сценарію.


О, я майже теж відповів на це. Подивіться на дату, цей пост - динозавр.
Тамсін Майкл

1

Файли EXE та DLL - це портативні виконувані файли. Вони засновані на файлах unix PE / COFF.

Прочитайте http://en.wikipedia.org/wiki/Portable_Executable для отримання додаткової інформації.

В Ubuntu у вас немає конкретного розширення для виконуваного файлу. Це, як правило, файли, названі після програми, до якої вони також відносяться.

Важливим фактором є те, що для цих файлів встановлено виконуваний біт. Якщо у вас є кольоровий термінал, ви помітите, що це різні кольори, коли в списку використовується ls.

У файловій системі Unix бінарні виконувані файли, як правило, зберігаються у власному місці.

  1. / bin (основні бінарні файли)
  2. / sbin (системні бінарні файли)
  3. / usr / bin (бінарні програми)

тоді як інші ресурси програми можуть зберігатися в / usr / lib / або / usr / share /

Деб-файл правильніше відповідає файлу msi у Windows (тобто, інсталятору пакету).

Зазвичай файли tar.gz або файли bz2 містять вихідний код, з якого можна побудувати додаток


0

Ubuntu equile .exe / .com-файл - файл без розширень, зазвичай до нього додаються деякі розширення, такі як .bin, .run тощо.

Є кілька альтернатив для .bat файлу (майже всі файли), найпопулярніший - .sh

.deb - це лише архівні двійкові файли (схожі на .msi у Windows) з debian standerds

.tar.gz - це просто поширений формат архівування, який використовується в ubuntu


0

Будь-яке ім'я файлу можна встановити виконуваним незалежно від розширення, але для файлу повинен бути встановлений відповідний дозвіл. Дозвіл може бути надано, клацнувши правою кнопкою миші файл у Nautilus, клацнувши Властивості та поставте галочку "Дозволити виконання файлу як програми":

пункт меню, що показує Виконати: -checkbox- Дозволити виконання файлу як програми


Я хотів би зазначити, що будь-яке ім'я файлу можна зробити виконуваним, а не будь- який тип файлу, як, мабуть, вказує фраза "Будь-який файл". редагування для наочності.
Старійшина Гейк

-3

.deb пакунок Debian для архівів Linux та TAR, стислий за допомогою стандартного алгоритму стиснення zip (gzip) GNU; містить один або кілька стислих файлів; зазвичай використовується в операційних системах Unix для упаковки файлів, програм та інсталяторів.

ПРИМІТКА . Файли TAR.GZ спочатку потрібно декомпресувати та розгорнути за допомогою утиліти TAR. Вони включають обидва типи файлів .TAR та .GZ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.