Die kurze Antwort

Die kurze Antwort

Manchmal ist es sinnvoll, wenn ein Ordnername einen Punkt ( .) enthält. Sie speichern beispielsweise Daten für ein Experiment, das bei L=0,5 durchgeführt wurde. Der Ordner könnte also heißen:

experiment_L0.5

Ein ähnliches Problem kann bei Dateinamen auftreten. Beispiel:

file_L0.5.txt

Ist das eine schlechte Vorgehensweise, wenn man mit Ubuntu arbeitet? Wie wäre es, diese Verzeichnisse mit einem Windows-Benutzer zu teilen?

Antwort1

Soweit ich weiß, gibt es keine Probleme, wenn ich Ordner und Dateien mit einem oder mehreren Punkten benennen würde.

Ubuntu verwendet im Allgemeinen nicht den Punkt und drei Zeichen (wie .txt), um den Dateityp zu identifizieren. Dies hat also im Ubuntu-Kontext keine besondere Bedeutung. Dies ist nützlich, wenn Dateien mit Windows geteilt werden. Ubuntu verwendetMagische Zahlenin den ersten paar Bytes der Datei, um den Dateityp zu identifizieren. Nautilus ignoriert die magischen Zahlen jedoch, wenn die Erweiterung mit Punkt und drei Zeichen zur Identifizierung des Dateityps verfügbar ist. Diese Einstellung kann geändert werden. Siehe Erzwingen Sie, dass Nautilus Erweiterungen ignoriert

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 ausgeblendeter Dateien ein- und ausschalten, indem Sie in Nautilus Ctrl+ drücken H. In Windows wird ein Dateiname, der mit einem beginnt, .nicht ausgeblendet. Wenn Sie also eine ausgeblendete Datei mit dem Namen .experiment_L0.5in ein Windows-System übertragen, ist sie deutlich sichtbar.

In Ubuntu kann ein Dateiname mit einem Punkt enden, da dieser am Ende keine besondere Bedeutung hat. In Windows trennt jedoch ein Punkt den Dateinamen und die Erweiterung, und ein Dateiname, der mit einem Punkt, aber ohne Erweiterung endet, 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.

Antwort2

Die kurze Antwort

  • Windows erlaubt die folgenden Zeichen nicht: <>:"/\|?*(Quelle)
  • Weitere Zeichen, von denen abgeraten wird, sind: Leerzeichen und Punkt .(Quelle)
    • Befehlszeilentools sind schwieriger zu verwenden, wenn die Namen Leerzeichen enthalten (schwieriger, aber nicht unmöglich)
    • Punkte werden in RegEx verwendet (z. B. wenn Sie verwenden möchten grep). Ein führender Punkt macht eine Datei in Linux per Konvention versteckt. In Windows werden Punkte in der Dateierweiterung verwendet, die zur Erkennung des Dateityps verwendet wird.
  • Windows erlaubt außerdem keine Dateinamen CON, PRN, AUX, CLOCK$, NUL COM1, COM2, COM3, COM4, , COM5, COM6, COM7, COM8, COM9 LPT1, LPT2, LPT3, , LPT4, LPT5, , LPT6, LPT7, LPT8und LPT9. (Quelle)
  • Die einzigen mir bekannten, in Unix-Dateisystemen nicht zulässigen Zeichen sind /und null (das Null-Byte, \0).
  • Siehe auch:Dateisystembeschränkungen(Ich weiß nicht, mit welchem ​​Windows Sie kompatibel sein möchten).

Die lange Antwort

Technischer Hintergrund: Dateisystem

Ubuntu verwendet dieext4Dateisystem. Ein Dateisystem verfolgt, wo Dateien auf dem zugrunde liegenden Speicher (Festplatte oder SSD oder was auch immer) gespeichert sind, Berechtigungen in der Form „Besitzer/Gruppe/andere können lesen/schreiben/ausführen“, Zeitstempel, Name.

Das Dateisystem strukturiert den verfügbaren Speicher. Der erste Block wird „Superblock“ genannt. Dieser Block wird zum Einbinden eines Dateisystems verwendet. Soweit ich weiß, teilt jedes moderne Dateisystem seinen Speicherplatz in Blöcke auf. Ich glaube (und bin mir da nicht ganz sicher), dass die meisten Dateisysteme auch eine feste Blockgröße haben, obwohl die Blockgröße beim Erstellen des Dateisystems konfiguriert werden kann. ext4 (und auch ext2 und ext3) verwenden sogenannte „Inodes“ für Dateien und Verzeichnisse. Diese Inodes enthalten Zeiger auf andere Blöcke (die ebenfalls Inodes oder „Datenblöcke“ sein können). Und der „erste“ Inode einer Datei enthält alle oben genannten Informationen.

Eine weitere Information ist der „Typ“ der Datei. „Typ“ kann sein:

  • reguläre Datei
  • Verzeichnis
  • Gerätedatei (Block- oder Zeichengerät)
  • ...

Tatsächlich können Sie Verzeichnisse auch mit einem Editor öffnen:

vim /home

Da das Verzeichnis nicht den vollständigen Pfad enthält, sondern nur die Namen des Inhalts, sehe ich keinen Grund, warum Dateien kein enthalten können /. Ich vermute, es ist vielleicht praktischer Natur. (Weiß jemand, warum das /nicht erlaubt ist?)

Bei anderen Dateisystemen sieht es allerdings anders aus. FAT16 und FAT32 verwenden eine sogenannte „File Allocation Table“. Das heißt, es gibt eine Tabelle, die alle Dateien, die auf Ihrem Dateisystem gespeichert sind, in welchem ​​„Cluster“ sie beginnen und in welchem ​​Cluster sie enden, als einfach verkettete Liste auflistet.

Wichtig war mir, Ihnen mitzuteilen, dass die Anzahl der nicht zulässigen Zeichen auch vom Dateisystem abhängen kann.

Technischer Hintergrund: Dateitypen

  • Windows verwendet Dateierweiterungen zum Erkennen von Dateitypen
  • Linux verwendet „Magic Bytes“, um Dateitypen zu erkennen.Magische Bytessind Teil des Inhalts der Datei und damit völlig unabhängig vom Namen. Diese Bytes sind Teil der Spezifikation des Dateityps (siehePNG-Spezifikationals Beispiel). Es verwendet auch die Dateinamenerweiterungen für Dateien mit denselben Magic Bytes wie .txtoder .html(beides sind Textdateien).

Verwandt

Antwort3

Der Vollständigkeit halber seien hier die Namen genannt, die nur aus einem .oder zwei Punkten bestehen ..:

  • .verweist auf das aktuelle Verzeichnis
  • ..verweist auf das übergeordnete Verzeichnis

Diese Einträge werden automatisch hinzugefügt und sind immer vorhanden. Sie können daher keine Datei mit dem Namen .oder haben ...

Antwort4

Die Dateibenennung ist in Unix- und Linux-Dateisystemen sehr flexibel. Der einzige Dateiname, den Sie nicht haben können, istNullZeichen oder das, das ein /im Namen enthält. Es wäre jedoch sicherlich eine gute Praxis, die Verwendung von Zeichen zu vermeiden, die in anderen Systemen aus Sicht der Namensportabilität verboten/reserviert sind. Sie sollten beispielsweise keines der " * : < > ? \ / |Zeichen (eingeschränkt durch NTFS) in Ihrem Dateinamen verwenden, wenn Sie in einem Windows-System auf die Datei zugreifen möchten.

Undzur Verwendung eines .(Punkts) im Dateinamen, ich denke, es sollte in Ordnung sein, da es nicht so aussieht, als ob es ein"reserviert"Zeichen in allen Systemen (außer OpenVMS, MS-DOS und Windows, wo seine Verwendung in Datei-/Verzeichnisnamen zulässig ist, das letzte Vorkommen jedoch in VMS, MS-DOS und Windows als Erweiterungstrennzeichen interpretiert wird), wie im folgenden Wikipedia-Link erwähnt:

In anderen Systemen wird es normalerweise als Teil des Dateinamens betrachtet und es können mehrere Punkte zulässig sein. Unter Unix bedeutet ein führender Punkt, dass die Datei oder der Ordner normalerweise ausgeblendet ist.

verwandte Informationen