Portál AbcLinuxu, 12. května 2025 12:35
do dnešního dne jsem byl přesvědčen, že přípona exe je jasným příznakem aplikace, která není psaná pro Linux. Dnes jsem ale potřeboval killnout vytouhlou aplikaci pod wine, tak jsem si našel procesy s řetězcem ".exe" a ono tam na mě pomrkává:
Banshee.exe BeagleDaemon.exe IndexHelper.exe
Po prohledání disku jsme našel ještě další příklady, ale nebylo jich mnoho. Vím, že principiálně by v tom neměl být problém, ale rád bych věděl, zda je nějaká konvence (ne)používání přípony *.exe
Řekl bych, že výše zmiňované programy jsou .NET programy a běží přes Mono. Mají příponu .exe, protože tak se to na Windows dělá, protože .NET je od Microsoftu. Jestli to je povinná záležitost, nebo jenom zvyk (zhlediska .NET), nevím.
Pokud jste našel další podobné názvy, asi se jedná o programy z balíku Wine (emulace Windows v Linuxu), což je opět věc spojená s Microsoftem.
Jinak v Linuxu obecně na názvu nezáleží, spustitelnost značí příznak spustitelnosti v právech dotyčného souboru.
Díky za odpověď. Tím, co jsem našel pod Wine či CrossOver jsem se samozřejmě nezabýval, na práva jsem také narazil, ale .Net programy - tak to mě na Linuxu překvapilo (i když s openSUSE by možná nemělo ). Každopádně drtivá většinu nalezeného je právě v Banshee, Beagle a Mono adresářích. Pak jsem to ještě našel v linuxové verzi Lotus Notes (BTW - by mě zajímalo, zda adresář win32 jen zapomněli, nebo jej využívají). Dalších cca 20 výskytů bych nepitval - je to u aplikací, kde při odkazu na .Net mi to již nepřidaná tak překvapivé (snad vyjma balíčku ggreater
) a hlavně to nebyl cíl dotazu.
Neodbytně se tedy vrátím k otázce. Proč ne *.exe když *.sh, *.bin atd. vídám hojně? Tradice?
*.sh se používá spíše jen tam, kde se jedná o skript, který nemá nastavená práva pro spuštění a je nutné jej pouštět přes ručně volaný interpret. Podobně *.pl pro perlové skripty. Ale je třeba říci, že tohle dělají často vývojáři, kteří jsou přeučení uživatelé Windows a šéf jim řekl „potřebuji udělat skript, co poběží na UNIXu.“
*.bin většinou dělají výrobci proprietárních megalomanských aplikací (hry, ovladače od nvidie), protože si myslí, že nadržený hráč si nedokáže přečíst README.
Jediný smysluplný případ je, když je třeba automaticky zpracovávat soubory určitého druhu. Například když se dělají moduly pro Perl nebo Python, tak se instalace řídí pomocí Makefile, který je založen na porovnání vzorových jmen (globbing).
Historicky bude důvodem pravděpodobně to, že spustitelné soubory se na UNIXu typicky nacházejí v k tomu určených adresářích (~/bin, /bin, /usr/bin, ...) a bylo by poněkud zbytečné mít tam u každého souboru ještě příponu se stejným významem. Ale ničemu to určitě nevadí, viděl jsem to dokonce myslím u nějakého "čistě linuxového" programu. Někomu to možná přijde přehlednější, existují třeba i lidé, kterým připadá jako normální název spustitelného souboru "a.out"
> Wine (emulace Windows v Linuxu)
Pouze bych doplnil detail. Wine není emulátor. Dokonce jsem se setkal se skratkou Wine Is Not an Emulator.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.