Manchmal ist es praktisch sinnvoll, wenn ein Ordnername einen Punkt (.) Enthält. Beispielsweise speichern Sie Daten für ein Experiment, das bei L = 0,5 durchgeführt wurde. So könnte der Ordner heißen:
experiment_L0.5
Ein ähnliches Problem kann bei Dateinamen auftreten. Beispielsweise:
file_L0.5.txt
Ist das eine schlechte Praxis, wenn Sie in Ubuntu arbeiten? Wie wäre es, wenn Sie diese Verzeichnisse für einen Windows-Benutzer freigeben?
Vielen Dank!
Antworten:
Soweit ich weiß, gibt es keine Probleme bei der Benennung von Ordnern und Dateien mit einem oder mehreren Punkten.
Ubuntu verwendet in der Regel keinen Punkt und keine drei Zeichen (z. B. .txt), um den Dateityp zu identifizieren. Das hat also im Ubuntu-Kontext keine besondere Bedeutung. Dies ist nützlich, wenn Sie Dateien mit Windows teilen. Ubuntu verwendet Magic Numbers in den ersten Bytes der Datei, um den Dateityp zu identifizieren. Allerdings Nautilus. Ignoriert die magischen Zahlen, wenn die Erweiterung "Punkt" und "Drei Zeichen" zur Identifizierung des Dateityps verfügbar ist. Diese Einstellung kann geändert werden. Siehe Nautilus zwingen, Erweiterungen zu ignorieren
Wenn Sie in Ubuntu einen Datei- oder Ordnernamen mit einem Punkt beginnen, z. B.
.experiment_L0.5
, wird die Datei oder der Ordner ausgeblendet. Sie können die Anzeige versteckter Dateien umschalten, indem Sie in Nautilus Ctrl+ drücken H. In Windows ein Dateiname, der mit a beginnt. ist nicht versteckt. Wenn Sie also eine versteckte Datei mit dem Namen.experiment_L0.5
in ein Windows-System übertragen, ist sie deutlich sichtbar.In Ubuntu kann ein Dateiname mit einem Punkt enden, da am Ende keine besondere Bedeutung steht. In Windows werden Dateiname und Erweiterung jedoch durch einen Punkt getrennt, und ein Dateiname, der mit einem Punkt endet, aber keine Erweiterung enthält, ist nicht zulässig. Als ich versuchte, eine solche Datei in Windows zu erstellen, erhielt ich eine Datei mit nur dem Namen, ohne Punkt und ohne Erweiterung.
Referenz: Wiki zu Dateinamen
Hoffe das hilft.
quelle
:
in Windows-Dateinamen nicht zulässig ist und Probleme verursacht ( und das auch ). Siehe auch hier .fname.
) auch in Windows nicht zulässig ist.test.
Windows erstellen . Ich werde meine Antwort aktualisieren.Die kurze Antwort
<>:"/\|?*
( Quelle )und Punkt
.
( Quelle )grep
). Ein führender Punkt verbirgt eine Datei unter Linux. In Windows werden Punkte in der Dateierweiterung verwendet, die für die Dateityperkennung verwendet wird.CON
,PRN
,AUX
,CLOCK$
,NUL
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
, undLPT9
. ( Quelle )/
und null (das Null-Byte\0
).Die lange Antwort
Technischer Hintergrund: Dateisystem
Ubuntu nutzt das
ext4
Dateisystem. Ein Dateisystem verfolgt, wo Dateien auf dem zugrunde liegenden Speicher (Festplatte oder SSD oder was auch immer) gespeichert sind, Berechtigungen in Form von Eigentümer / Gruppe / Andere können lesen / schreiben / ausführen, Zeitstempel, Name.Das Dateisystem strukturiert den verfügbaren Speicher. Der erste Block heißt "Superblock". Dieser Block wird zum Mounten eines Dateisystems verwendet. Soweit ich weiß, teilt jedes moderne Dateisystem seinen Speicherplatz in Blöcke. Ich denke (und ich bin mir nicht sicher), dass die meisten Dateisysteme auch eine feste Blockgröße haben, obwohl die Blockgröße konfiguriert werden kann, wenn das Dateisystem erstellt wird. ext4 (und auch ext2 und ext3) verwenden sogenannte "Inodes" für Dateien und Verzeichnisse. Diese Inodes enthalten Zeiger auf andere Blöcke (dies können auch Inodes oder "Datenblöcke" sein). Und der "erste" Inode einer Datei enthält alle Informationen, die ich oben erwähnt habe.
Eine andere Information ist der "Typ" der Datei. "Typ" kann sein:
Tatsächlich können Sie Verzeichnisse auch mit einem Editor öffnen:
Da das Verzeichnis nicht den vollständigen Pfad enthält, sondern nur die Namen des Inhalts, sehe ich keinen Grund, warum Dateien keine enthalten können
/
. Ich denke, es könnte praktisch sein. (Weiß jemand warum/
das nicht erlaubt ist?)Bei anderen Dateisystemen ist das jedoch anders. Die FAT16 und FAT32 verwendeten eine sogenannte "Dateizuordnungstabelle". Dies bedeutet, dass es eine Tabelle gibt, die alle Dateien enthält, die in Ihrer Datei gespeichert sind, bei welchem "Cluster" sie beginnen und bei welchem Cluster sie als einfach verknüpfte Liste enden.
Das Wichtige, was ich Ihnen sagen wollte, ist, dass nicht zugelassene Zeichen auch vom Dateisystem abhängen können.
Technischer Hintergrund: Dateitypen
.txt
oder.html
(beide sind Textdateien) verwendet.verbunden
quelle
.txt
und.html
Dateien haben in der Tat unterschiedliche "magische Werte" - versuchen Sie eine HTML-Datei umzubenennentest.txt
und auszuführenfile test.txt
. Es hat nicht viel Relevanz für die ursprüngliche Frage, aber immer noch :)file
:file
Verwendet nicht nur magische Werte, um den Typ einer Datei zu bestimmen. Jede gültige HTML-Datei ist eine Textdatei (in dem Sinne, dass sie lesbare Zeichen enthält), aber nicht jede gültige Textdatei ist eine gültige HTML-Datei (in dem Sinne, dass sie gegen W3C-Validatoren validiert). Viele Dateitypen (html, xml, csv, js, php, c, h, cpp, ...) sind also Textdateien. Nur Binärdateien haben magische Bytes, die sich an genau definierten Positionen befinden. Alle oben genannten Dateien können vor dem Inhalt ein beliebiges Leerzeichen enthalten.Der Vollständigkeit halber sind die Namen, die nur aus einem
.
oder zwei Punkten..
bestehen, besonders:.
verweist auf das aktuelle Verzeichnis..
verweist auf das übergeordnete VerzeichnisDiese Einträge werden automatisch hinzugefügt und sind immer vorhanden, sodass Sie keine Datei mit dem Namen
.
oder haben können..
.quelle
Dies spielt keine Rolle, weder unter Linux noch unter Windows.
Es ist eine gängige Praxis, einen Ordner mit dem Namen "program.d" zu haben - um die Konfiguration und die Daten für ein Programm zu speichern (siehe Verzeichnis / etc).
quelle
Die Benennung von Dateien ist in Unix- und Linux-Dateisystemen sehr flexibel. Der einzige Dateiname, den Sie nicht haben können, ist ein Null- Zeichen oder der
/
Name mit einem . Es wäre jedoch sicher eine gute Praxis, die Verwendung von Zeichen zu vermeiden, die aus Sicht der Namensportabilität in anderen Systemen verboten / reserviert sind." * : < > ? \ / |
Zum Beispiel sollten Sie keine Zeichen (eingeschränkt durch NTFS) in Ihrem Dateinamen verwenden, wenn Sie in einem Windows-System auf die Datei zugreifen möchten.Und über die Verwendung eines
.
(Punktes) in Dateiname , denke ich, sollte es in Ordnung sein, da es in keinem der Systeme ein "reserviertes" Zeichen zu sein scheint (mit Ausnahme von OpenVMS, MS-DOS und Windows, in denen es verwendet wird) Datei- / Verzeichnisname ist zulässig, aber das letzte Vorkommen wird als Erweiterungstrennzeichen in VMS, MS-DOS und Windows interpretiert, wie im folgenden Wikipedia-Link angegeben:In anderen Systemen, die normalerweise als Teil des Dateinamens betrachtet werden, kann mehr als ein Punkt zulässig sein. Unter Unix bedeutet ein vorangestellter Punkt, dass die Datei oder der Ordner normalerweise ausgeblendet ist.
quelle