Jemand, den ich kenne, äußerte sich heute verärgert über diejenigen von uns, die dazu neigen, keine Leerzeichen in unseren Dateinamen zu verwenden, z. B. NamingThingsLikeThis.txt
- trotz der meisten modernen Betriebssysteme, die Leerzeichen in Dateinamen unterstützen.
Gibt es technische Gründe , warum es immer noch üblich ist, Dateinamen ohne (geeignete) Leerzeichen anzuzeigen? Wenn ja, aus welchen technischen Gründen werden Leerzeichen in Dateinamen vermieden oder entmutigt, und unter welchen Umständen sind sie relevant?
Der offensichtlichste Grund, an den ich denken könnte und warum ich ihn normalerweise vermeide, sind die zusätzlichen Anführungszeichen in der Befehlszeile, die beim Umgang mit solchen Dateien erforderlich sind. Gibt es noch andere wichtige technische Gründe?
quelle
Antworten:
Whitespace-Zeichen in Dateinamen können in vielen Kontexten auf der Befehlszeile und in Skripten, in denen Sie darauf achten müssen, dass sie ordnungsgemäß maskiert werden, ein echtes Problem sein Laufen.
Es ist nur sicherer, sie nicht dort zu haben, auch wenn Sie sicher sind, dass die Datei / dir / what-ever in einem solchen Kontext niemals verwendet wird.
Das und alte Gewohnheiten sterben schwer.
quelle
'\n'
) in ihren Namen zu behandeln. (Unix-ähnliche Systeme ermöglichen dies tatsächlich; Windows im Allgemeinen oder erschwert es zumindest.)Neben den anderen Antworten zu Befehlszeile und alten Gewohnheiten gibt es auch viele Netzwerkprotokolle, die besondere Sorgfalt beim Umgang mit Dateinamen erfordern, die Leerzeichen enthalten.
(Wenn Sie jemals versucht haben, "Product List.pdf" von einer Website herunterzuladen und eine Datei mit dem Namen "Product" erhalten haben, hat Sie das gebissen, weil der Programmierer am anderen Ende es nicht wusste oder nicht konnte die Angebotsregeln für den http Content-Disposition-Header nicht herausfinden.)
quelle
Viele Gründe sind historisch. Das heißt nicht, dass sie heute keinen Sinn ergeben.
Probleme bei der Portabilität
Beim Benennen einer Datei müssen Sie möglicherweise auch berücksichtigen, wie andere (Datei-) Systeme diesen Dateinamen behandeln. Ein Zeichen in einem Dateinamen ist möglicherweise in Ordnung für Ihr System, kann jedoch ein Problem für ein anderes System darstellen.
Solange also die geringste Möglichkeit bestand, dass Sie von einem älteren System aus problemlos auf die Datei zugreifen möchten, würden Sie nur sichere Zeichen auswählen . Dies kann das Booten in ein altes Wiederherstellungssystem beinhalten, das Sie in der Nähe haben, oder die Befürchtung, dass neuere Windows-Versionen immer noch irgendwie auf MS-DOS basieren.
Länge
Ein Dateisystem kann die Länge einer Datei begrenzen. Dies war in den Tagen, in denen MS-DOS auf 8.3-Dateinamen beschränkt war, noch schwerwiegender . Wenn Sie Leerzeichen weglassen, können Sie aussagekräftigere Zeichen in den Namen einfügen.
Einige andere Dateisysteme definierten ebenfalls strenge Grenzen für die Länge ihrer Dateinamen. Wikipedia hat eine Tabelle im Artikel über Dateisystemvergleich für diejenigen, die die Details wollen.
Reservierte Zeichen
MS-DOS hat das Leerzeichen auch als reserviertes Zeichen definiert. Dies ist darauf zurückzuführen, dass das Leerzeichen zum Auffüllen der FAT verwendet wurde . Darüber hinaus hat MS-DOS kein Escape-System in der Shell bereitgestellt.
Befehlszeileninterpretation
Den meisten Befehlszeilen ist bekannt, dass das Leerzeichen als Parameterbegrenzer verwendet wird . Wenn Sie es versäumen, einen Dateinamen ordnungsgemäß zu maskieren, kann dies schwerwiegende Folgen haben, da Teile des Dateinamens als Parameter für die Anwendung interpretiert werden können, die Sie aufrufen möchten.
Betrachten Sie den Unterschied zwischen
und
Der oben verlinkte WikiPedia-Artikel weist sogar auf Mehrdeutigkeiten hin, die dadurch entstanden sind, dass ein Befehl nicht ordnungsgemäß umgangen werden konnte:
Uniform Resource Locators (URL)
Beim Versuch, den Speicherort einer Datei mithilfe einer URL zu beschreiben, müssen Leerzeichen maskiert werden.
Quelle: RFC1738
Daher muss ein Leerzeichen durch ein ersetzt
%20
werden. Dies macht den Dateinamen-Teil der URL weniger lesbar und die Leute meiden ihn daher an erster Stelle.quelle
Leerzeichen werden
%20
im Web in Dateinamen codiert oder konvertiert , was die Verwaltung der Assets einer Site erschwert.Haben
Image 1.png
undImage%201.png
ist verwirrend. Es ist einfacher zu benutzenImage001.png
.Dies fällt wirklich unter dieselbe Kategorie wie Escape-Sequenzen für die Befehlszeile.
quelle
Manchmal können Leerzeichen ein Problem darstellen, wenn Sie sich in der Befehlszeile befinden, wenn Sie ältere Betriebssysteme verwenden oder wenn Sie Programme schreiben, die auf verschiedenen Betriebssystemen kompiliert werden, oder wenn ... es viele Gründe gibt, die problematisch sein können. Ich habe nicht wirklich das Gefühl, dass es so schwierig ist , die Datei wie folgt zu schreiben: file-without-blanks.txt oder file_without_blanks.txt . Ich bevorzuge das Bindestrich, weil der Unterstrich manchmal unsichtbar wird, wenn es sich zum Beispiel um unterstrichene Schrift handelt.
Meistens ist es aber Gewohnheitssache ab dem Alter. Was ich nicht denke, dass es genug professionelle Gründe gibt, aufzugeben.
Ein zusätzlicher Hinweis, möglicherweise nicht im Zusammenhang, aber ich werde es trotzdem hier setzen. Leute, die ihre Dateien mit Leerzeichen benennen, denken normalerweise nicht viel darüber nach. diejenigen, die nicht oft wissen, warum es gut ist, sie in Dateinamen zu vermeiden.
Und wir sind uns alle einig, dass es nichts Schlimmeres gibt als eine Datei mit dem Namen "Sehr geehrte Damen und Herren, ich schreibe Ihnen diesen Brief, um Sie über yo.doc zu informieren".
Nicht nur Leerzeichen - die Dateilänge zählt auch für etwas, und meiner Meinung nach sollte sie nicht länger als 30 Zeichen sein. Denn lange Dateinamen mit Leerzeichen sind auch ein Segen beim Aufnehmen von CDs, DVDs und dergleichen, die unter älteren Betriebssystemen und zwischen Windows- und * nix-Plattformen gelesen werden müssen.
quelle