Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Beitrag von Meillo » 25.04.2018 15:11:29

Ich habe das Gefuehl, dass ich darauf noch reagieren will ...

Zuerst der einfachere Teil:
hikaru hat geschrieben: ↑ zum Beitrag ↑
12.04.2018 23:48:13
Meillo hat geschrieben: ↑ zum Beitrag ↑
12.04.2018 22:57:43
Was sind denn nun unsere Erkenntnisse?

1) Wenn ein klar definiertes, bekanntes Format verwendet wird (was man moeglichst tun sollte), dann sollte man dessen Dateiendung verwenden.

2) Andernfalls besser keine Dateiendung verwenden
Dem kann ich mich anschließen. Wenn du "Andernfalls besser" noch durch "Oder" ersetzt, dann bin ich ganz bei dir.
(Den Einwand in der Klammer berachte ich durch die Erkllärung von oben als entkräftet, falls du damit einverstanden bist.)
Da missverstehen wir uns vielleicht. Ich will sagen: Erstens, verwende moeglichst ein klar definiertes, bekanntes Format. Da sind wir doch einer Meinung? Falls du ein solches verwendest, dann nimm auch seine Dateiendung (*.xml, *.ini, *.sqlite, ...). Auch da wirst du zustimmen, vermute ich. Andernfalls, ... Da kommt jetzt die eigentliche Frage auf ...


Nun zum schwierigeren Teil:
hikaru hat geschrieben: ↑ zum Beitrag ↑
12.04.2018 23:48:13
Meillo hat geschrieben: ↑ zum Beitrag ↑
12.04.2018 22:57:43
Beim ersten Beispiel sehe ich es (noch? ;-) ) etwas anders. Die Endung *.bin hat einen Wert unter Unix, denn unter Unix ist normalerweise alles Text und in den meisten Faellen plain Text. Binaerdateien sorgen fuer eine Menge Probleme, weil sie mit dem System eigentlich kollidieren. Die meisten schoenen Tools funktionieren damit nicht und wenn man sie ausgibt zerschiessen sie das Terminal. Darum macht es Sinn, diese Sonderlinge zu kennzeichnen, sozusagen als Warnhinweis. Das *.bin sagt uns: Achtung, mach bloss kein cat(1) oder ed(1) auf die Datei. Man darf nur Programme verwenden, die bei der Ausgabe nicht-druckbare Zeichen in Ersatzdarstellung ausgeben, wie less(1) und vi(1).
Das ist richtig, aber du denkst nicht weit genug. ;)
Wir sind uns einig darüber, dass Binärdateien Mist sind und dass man sie mit gesonderten Dateiendungen markieren sollte, falls man überhaupt Dateien so markiert. Aber alle Binärdateien in einen ".bin"-Sack zu stecken ist nicht besser als alle Plain-Text-Dateien in einen ".txt"-Sack zu stecken. Es ist sogar noch schlimmer, weil anders als bei Plain-Text-Dateien nicht die Möglichkeit der "Interpretation durch den Menschen" besteht.
Daher ist es noch wichtiger, verschiedene Binärdateien mit verschiedenen Endungen zu versehen, weil ".bin" als Sammelbezeichnung an sich eben noch weniger Wert hat als ".txt".
Ich finde nicht, dass *.bin schlimmer ist als *.txt.

Aber von Anfang an: Wenn wir ein bekanntes Format mit eigenes Dateiendung haben, dann sollte man diese verwenden und gut ist. Also geht es nur noch um Dateien, deren Format nicht so recht klar ist (also die ``Andernfalls''-Faelle von oben)? Das ist dann wohl irgendwas Proprietaeres fuer den internen Gebrauch einer Anwendung oder so.

Wenn die Datei nun *.bin heisst, dann weiss ich dadurch zumindest, dass es sich um ein Binaerformat handelt (Warnhinweis) und dass ich den Inhalt vermutlich nicht verstehen werde. Das sind IMO hilfreiche Informationen. (Aber natuerlich: Wir wollen solche Dateien am liebsten gar nicht haben.) Der Informationsgewinn von *.txt ist, dass es irgendeine Art von lesbarem und vermutlich intuitiv verstaendlichem Text handelt. Wir sind uns einig, dass man bei Binaerdaten nicht diese Moeglichkeit der Interpraetation durch den Menschen hat.

Wenn wir die unverstaendliche Binaerdatei nicht *.bin nehnen, wie nennen wir sie dann? Du sagst doch implizit, dass es eine bessere Alternative gibt. Wenn wir eine willkuerliche Dateiendung vergeben, dann sagt uns das auch nicht mehr und birgt die Gefahr der Verwirrung, falls man zufaellig eine Endung waehlt, die jemand anderes auch schon gewaehlt hat. (Falsche Information ist schaedlicher als keine Information.) Laesst man die Dateiendung ganz weg, fehlt der Warnhinweis, den die Sammelendung *.bin bietet. Unter Unix im Terminal wuerde ich darum sagen, dass bei willkuerlichen Binaerdateien im Dateisystem (also nicht *.o oder ``core'' oder ausfuehrbare Dateien) *.bin wertvoller ist als keine Endung. Aber von mir aus, ich kann auch ohne Endung bei Binaerdateien leben. Bloss an der Aussage, dass *.bin schlimmer als *.txt waere, stoere ich mich ein bisschen. Wir muessen uns daran aber auch nicht aufhaengen.

Das war jetzt keine perfekte Antwort, aber ich hab's zumindest mal geschafft zu antworten. Jetzt bist du wieder am Zug. :-P

... irgendwie frage ich mich aber auch ein bisschen, um was genau es eigentlich noch genau geht. ;-) Vielleicht kannst du ja die Frage nochmal formulieren. :facepalm:
Use ed once in a while!

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Beitrag von hikaru » 25.04.2018 15:44:39

Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Da missverstehen wir uns vielleicht. Ich will sagen: Erstens, verwende moeglichst ein klar definiertes, bekanntes Format. Da sind wir doch einer Meinung? Falls du ein solches verwendest, dann nimm auch seine Dateiendung (*.xml, *.ini, *.sqlite, ...). Auch da wirst du zustimmen, vermute ich.
Zustimmung.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Andernfalls, ... Da kommt jetzt die eigentliche Frage auf ...
... verwende:
A: keine Endung
B: eine selbst gewählte konfliktfreie Endung (z.B.: ".hansbin")

Beide Alternativen sind gleichberechtigt. Welche jeweils vorzuziehen ist, hängt vom Kontext ab.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Ich finde nicht, dass *.bin schlimmer ist als *.txt.
Das war vielleicht etwas drastisch formuliert. Weil Plain Text zumindest noch die Möglichkeit der menschlichen Überprüfung bietet, ist es hier weniger tragisch als bei Binärdateien, wenn die Zuordnung nicht eindeutig ist.
Wenn wir berücksichtigen, dass wir beides eigentlich automatisiert verarbeiten wollen, dann spielt es aber natürlich keine Rolle, dass man da auch nochmal persönlich reinschauen könnte.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Wenn die Datei nun *.bin heisst, dann weiss ich dadurch zumindest, dass es sich um ein Binaerformat handelt (Warnhinweis) und dass ich den Inhalt vermutlich nicht verstehen werde. Das sind IMO hilfreiche Informationen.
Wenn wir nun aber alle unsere proprietären Binärdateien *.bin nennen, dann wissen wir immer noch nicht, ob eine uns zufällig über den Weg laufende *.bin-Datei zu dem selbstgeschriebenen Programm A, B oder Z gehört. Und weil wir nicht einfach reinschauen können um das herauszufinden, ist die Wahl der Endung .bin für alle Binärdateien schlechter als die der Endung .txt für alle Textdateien.
Dass wir überhaupt eine Endung verwenden zeigt, dass wir uns die Mühe gemacht haben unterscheiden zu wollen, ob eine Binärdatei vorliegt oder nicht. Wir sind den Weg aber nicht konsequent zum Ende gegangen, indem wir die Endung so gewählt hätten, dass wir die Datei dem Programm zuordnen könnten. Als grundfaulem Menschen missfällt mir diese Halbherzigkeit. Wir hätten uns die Mühe entweder ganz sparen und ein Bier trinken sollen (keine Endung), oder wir hätten es von Anfang an richtig machen sollen (z.B.: ".bina", ".binb", ".binz").
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
... irgendwie frage ich mich aber auch ein bisschen, um was genau es eigentlich noch genau geht. ;-) Vielleicht kannst du ja die Frage nochmal formulieren. :facepalm:
Die Frage steht - nicht ganz vollständig - im Threadtitel: ;)
Wo und wie speichert man am besten ein Shell-Script und seine Begleitdateien?

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Beitrag von Meillo » 25.04.2018 17:29:42

hikaru hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:44:39
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Da missverstehen wir uns vielleicht. Ich will sagen: Erstens, verwende moeglichst ein klar definiertes, bekanntes Format. Da sind wir doch einer Meinung? Falls du ein solches verwendest, dann nimm auch seine Dateiendung (*.xml, *.ini, *.sqlite, ...). Auch da wirst du zustimmen, vermute ich.
Zustimmung.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Andernfalls, ... Da kommt jetzt die eigentliche Frage auf ...
... verwende:
A: keine Endung
B: eine selbst gewählte konfliktfreie Endung (z.B.: ".hansbin")

Beide Alternativen sind gleichberechtigt. Welche jeweils vorzuziehen ist, hängt vom Kontext ab.
Dem kann ich zustimmen.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Ich finde nicht, dass *.bin schlimmer ist als *.txt.
Das war vielleicht etwas drastisch formuliert. Weil Plain Text zumindest noch die Möglichkeit der menschlichen Überprüfung bietet, ist es hier weniger tragisch als bei Binärdateien, wenn die Zuordnung nicht eindeutig ist.
Wenn wir berücksichtigen, dass wir beides eigentlich automatisiert verarbeiten wollen, dann spielt es aber natürlich keine Rolle, dass man da auch nochmal persönlich reinschauen könnte.
Passt soweit auch.
Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
Wenn die Datei nun *.bin heisst, dann weiss ich dadurch zumindest, dass es sich um ein Binaerformat handelt (Warnhinweis) und dass ich den Inhalt vermutlich nicht verstehen werde. Das sind IMO hilfreiche Informationen.
Wenn wir nun aber alle unsere proprietären Binärdateien *.bin nennen, dann wissen wir immer noch nicht, ob eine uns zufällig über den Weg laufende *.bin-Datei zu dem selbstgeschriebenen Programm A, B oder Z gehört. Und weil wir nicht einfach reinschauen können um das herauszufinden, ist die Wahl der Endung .bin für alle Binärdateien schlechter als die der Endung .txt für alle Textdateien.
Dass wir überhaupt eine Endung verwenden zeigt, dass wir uns die Mühe gemacht haben unterscheiden zu wollen, ob eine Binärdatei vorliegt oder nicht. Wir sind den Weg aber nicht konsequent zum Ende gegangen, indem wir die Endung so gewählt hätten, dass wir die Datei dem Programm zuordnen könnten. Als grundfaulem Menschen missfällt mir diese Halbherzigkeit. Wir hätten uns die Mühe entweder ganz sparen und ein Bier trinken sollen (keine Endung), oder wir hätten es von Anfang an richtig machen sollen (z.B.: ".bina", ".binb", ".binz").
Hmm, vielleicht haengen wir zu sehr an dem was wir vor Augen haben, wenn wir hier von Binaerdateien reden. Da gibt es ELF-Dateien (ohne Endung) und etablierte Binaerformate, wie gz, jpg, usw, die alle passende Endungen haben. Um all diese Faelle geht es *nicht*.

Eigentlich geht es nur um irgendwelche ``dahergelaufenen'' Binaerdateien, die es besser gar nicht geben sollte, weil sie entweder in einem der etablierten Formate sein sollten, wodurch die Datenendungsfrage geklaert ist, oder in einem Textformat sein sollten, wodurch sich die *.bin-Frage eruebrigt und die ueberhaupt weniger wichtig ist.

Siehst du es auch so, dass es nur um diesen Fall geht?


Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 15:11:29
... irgendwie frage ich mich aber auch ein bisschen, um was genau es eigentlich noch genau geht. ;-) Vielleicht kannst du ja die Frage nochmal formulieren. :facepalm:
Die Frage steht - nicht ganz vollständig - im Threadtitel: ;)
Wo und wie speichert man am besten ein Shell-Script und seine Begleitdateien?
Na ueber die Frage sind wir aber doch schon raus. Jetzt fragen wir uns ganz generell, in welcher Weise Dateiendungen verwendet werden sollten, in den nicht-trivialen Faellen.
Use ed once in a while!

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Beitrag von hikaru » 25.04.2018 17:55:25

Meillo hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 17:29:42
Eigentlich geht es nur um irgendwelche ``dahergelaufenen'' Binaerdateien, die es besser gar nicht geben sollte, weil sie entweder in einem der etablierten Formate sein sollten, wodurch die Datenendungsfrage geklaert ist, oder in einem Textformat sein sollten, wodurch sich die *.bin-Frage eruebrigt und die ueberhaupt weniger wichtig ist.

Siehst du es auch so, dass es nur um diesen Fall geht?
Im Grunde ja, aber das mit dem "besser gar nicht geben sollte" ist eben in der Praxis nicht so einfach. Wenn du Programme hast, die schon in Binärform GB-weise Daten schreiben oder lesen sollen und das möglichst schnell, dann sind Textdateien keine Option. Klingt eigentlich nach einem Fall für eine richtige DB, aber wenn dann auch noch Historie dazukommt, dann wird das zumindest manchmal unpraktisch.
Und wenn du dann zwei oder drei Programme von der Sorte hast, dann wäre es schon hilfreich, wenn du die Dateien den passenden Programmen zuorden kannst. Da bieten sich Dateiendungen an.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wo speichert man am besten ein Shell-Script und seine Begleitdateien?

Beitrag von Meillo » 25.04.2018 20:50:01

hikaru hat geschrieben: ↑ zum Beitrag ↑
25.04.2018 17:55:25
Im Grunde ja, aber das mit dem "besser gar nicht geben sollte" ist eben in der Praxis nicht so einfach. Wenn du Programme hast, die schon in Binärform GB-weise Daten schreiben oder lesen sollen und das möglichst schnell, dann sind Textdateien keine Option. Klingt eigentlich nach einem Fall für eine richtige DB, aber wenn dann auch noch Historie dazukommt, dann wird das zumindest manchmal unpraktisch.
Und wenn du dann zwei oder drei Programme von der Sorte hast, dann wäre es schon hilfreich, wenn du die Dateien den passenden Programmen zuorden kannst. Da bieten sich Dateiendungen an.
... die ungleich *.bin sind. -- Akzeptiert. :-)
Use ed once in a while!

Antworten