Allgemein
Knowledge Base
- Neue Struktur (In Arbeit)
- Computertechnisches
Community
Privat
Unix-Filesysteme kennen Execution rights, also Ausführungsrechte. Eine Programmdatei wird von der Shell nur als solche behandelt und ausgeführt, wenn Flag (x) auch gesetzt ist. Das ist (im Gegensatz zu Windows) unabhängig vom Dateinamen oder der Extension.
Auf der Shell einfach ein
bewirkt, dass die Datei <File>
jetzt für den eigenen User ausführbar ist.
<File>
zugeordnet ist und
Da UNIX User schreibfaul sind und die Systementwickler das wussten, kann man statt
<File>
für Gott und die Welt ausführbar zu machen.
Analog kann man mit
Enthält die Datei <File>
dann in der ersten Zeile einen Shebang, ( #!/usr/bin/Program
) wird /usr/bin/Program
gestartet mit <File>
als Argument. Deshalb lassen sich Skripte unter Unix starten als wären sie binäre Programme (vorausgesetzt sie haben Ausführungsrechte, sonst ist es für die Shell nur ein x-beliebiges Textfile).
<File>
braucht selbst keine Ausführungsrechte, wenn es über den Skriptinterpreter /usr/bin/Program
gestartet wird, da in diesem Fall der Skriptinterpreter das ausführbare Programm ist und <File>
nur das Argument.
Doch es ist ja gerade der Witz an der Sache daß man sich nicht merken muß ob ein Skript mit bash
, perl
, php
oder wasauchimmer gestartet werden muss.
Das x-Flag regelt zusätzlich noch, ob ein Ordner geöffnet werden darf. Ordner ohne gesetztem x-Flag sind nicht zugänglich.
Verstanden?
if ja: fein else man chmod
Elsni fragt: heißt das nicht eigentlich "Execution Permissions"? - grübel...