Gibt es eine Möglichkeit, einen Schrägstrich in einem Dateinamen zu speichern?

2547
Den

Gibt es eine Möglichkeit, einen Schrägstrich "/" in einem Dateinamen zu haben? Der "echte" Schrägstrich, nicht irgendein anderes Unicode-Symbol. Das Dateisystem sollte FAT16 / 32 und Ext4 sein.

0
Wenn Sie könnten, wie würden Sie es verwenden? Wie würden Sie sagen, Sie möchten die Datei "a / b" statt der Datei "b" in einem Verzeichnis "a" öffnen? David Schwartz vor 12 Jahren 0
Entkomme es mit einem Backslash wie bei anderen Sonderzeichen. Es funktioniert für * und? ... Beispiel: "a \ / b" Den vor 12 Jahren 0
Das hilft eigentlich nicht. Wie würden Sie feststellen, ob "a \ / b" die Datei "a \ / b" oder die Datei "b" im Verzeichnis "a \" bedeutet? Ein Backslash ist ein gesetzliches Zeichen in einem Dateinamen. Es ist im Prinzip unmöglich, etwas zu haben, das ein Verzeichnisseparator ist, aber auch jede mögliche Reihenfolge in einem Dateinamen zulässt. Eine bestimmte Reihenfolge muss in einem Dateinamen verboten sein, um eindeutig als Verzeichnisseparator verwendet zu werden. David Schwartz vor 12 Jahren 0

1 Antwort auf die Frage

4
Dennis

ext4

Nr. Ext4 erlaubt alle Unicode-Zeichen außer NUL und /. Letzteres kann nicht verwendet werden, da es das Verzeichnistrennzeichen des Dateisystems ist.

FAT16 / 32

FAT16 / 32 unterstützt nicht /nativ, aber lange Dateinamen (LFN).

Allerdings sind die LFN - Treiber in Windows, Linux, Unix, MS-DOS, OS / 2 und möglicherweise auch andere Betriebssysteme nicht erlauben /Teil eines LFN zu sein. Selbst wenn Sie eine solche Datei mit einem anderen Betriebssystem erstellen könnten, können Sie höchstwahrscheinlich nicht über diese Betriebssysteme darauf zugreifen.

Quelle: Vergleich von Dateisystemen - Wikipedia

`> FAT unterstützt / nicht nativ, aber lange Dateinamen (LFN) tun dies.` Huh‽ Wo sagt man, dass FAT `/` unterstützt? `oO``>> Selbst wenn Sie eine solche Datei mit einem anderen Betriebssystem erstellen könnten, können Sie höchstwahrscheinlich nicht über diese Betriebssysteme darauf zugreifen. “Das ist richtig. Ich habe in der Vergangenheit Experimente durchgeführt, bei denen ich einen Hex-Editor zum direkten Ändern von Dateinamen in Verzeichniseinträgen verwendet habe, und während ich Verzeichnislisten anzeigen konnte, störten sich DOS und Windows (und natürlich Programme) normalerweise an etwas, das illegale Zeichen enthielt. Einige konnten noch mit Platzhaltern umbenannt werden, andere nicht. Synetech vor 11 Jahren 0
@Synetech: Ich sagte, dass FAT nicht ** unterstützt. Verstehe ich etwas falsch? Dennis vor 11 Jahren 0
Sie sagten, dass "/" in langen Dateinamen verwendet werden kann, aber ich habe dazu noch nie etwas gesehen. LFNs (z. B. vFAT) unterstützt einige Zeichen, die bei normaler FAT nicht wie "+" und "" sind, aber zuletzt habe ich überprüft, dass "/" nicht dazu gehört. Haben Sie sich auf ein Dateisystem-Plug-in oder bezogen etwas? Synetech vor 11 Jahren 0
Laut dem Wikipedia-Artikel, mit dem ich verlinkt habe, unterstützt VFAT LFN alle Unicode-Zeichen außer NUL. Dies bezieht sich jedoch wahrscheinlich auf die aktuelle Spezifikation (ich kann sie nicht finden), daher wäre diese Behauptung wahr, wenn es keine tatsächliche Implementierung geben würde, die all diese Zeichen unterstützt. Dennis vor 11 Jahren 0
@Synetech nach einigen Fehlern in einer FAT 32-Datei, habe ich jetzt eine Datei mit einem Schrägstrich im Namen (aber leider völlig unabhängig davon, wo ich sie überhaupt haben möchte). Und ja, ich kann nichts damit anfangen. Dazu gehört, dass ich es nicht löschen kann. Wie haben Sie die Verzeichnisse mit einem Hex-Editor bearbeitet? Den vor 11 Jahren 0
Laut dem Wikipedia-Artikel, mit dem ich verlinkt habe, unterstützt VFAT LFN alle Unicode-Zeichen außer NUL. `FAT32 unterstützt keine Schrägstriche, Doppelpunkte, Sternchen usw. Sie interpretieren falsch, was es bedeutet: Es unterstützt * Unicode * -Zeichen wie chinesische Schriftzeichen, arabische Buchstaben, Box-Zeichnung usw., keine illegalen Zeichen, die für Trennzeichen von Dateisystemen verwendet werden. Es ist sicherlich möglich, versehentlich / manuell solche Dateinamen zu erstellen, sie sind jedoch für nichts lesbar (Betriebssystem, Programme usw.), das die FAT-Spezifikation unterstützt. Synetech vor 11 Jahren 0
@Den, hast du stattdessen versucht, einen Platzhalter zu verwenden? Wenn Ihr Dateiname beispielsweise "foo / bar.txt" lautet, versuchen Sie es mit einem Befehl wie "ren foo * .txt blah.txt" oder "del foo? Bar.txt" Synetech vor 11 Jahren 0
@Synetech: Die [FAT32-Spezifikation] (http://msdn.microsoft.com/de-de/library/windows/hardware/gg463080.aspx) lässt diese Zeichen nicht ausdrücklich zu, aber auch nicht. Ich betrachte also Dateinamen, die diese Zeichen enthalten, genauso wie Gerätenamen (z. B. lpt1): vom Betriebssystem verboten, nicht vom Dateisystem. Ich habe Dateien erstellt (mit `dd` und einem Hex-Editor), die Doppelpunkte und Schrägstriche enthalten. Windows kann auf beide Dateien mit ihrem Kurznamen zugreifen. Ubuntu handhabt sogar den Doppelpunkt in der grafischen Benutzeroberfläche, verschluckt aber offensichtlich den Schrägstrich. Dennis vor 11 Jahren 0
@Synetech: Ja, ich habe so etwas ausprobiert. Ich bekomme immer "Keine solche Datei oder Verzeichnis" Den vor 11 Jahren 0
@De: Hat die Datei den Schrägstrich im 8.3-Dateinamen? Ist dies nicht der Fall, führen Sie `dir / x 'aus, um den kurzen Dateinamen (z. B. foobar ~ 1.baz`) anzuzeigen, und verwenden Sie ihn zum Löschen der Datei. Dennis vor 11 Jahren 0