Ich verwende Windows 7 und muss aus Gründen, die außerhalb meiner Kontrolle liegen, ein Verzeichnis erstellen, das mit einem einzelnen Leerzeichen endet. Es wird verschiedene Dateien und Unterverzeichnisse enthalten.
Ich habe es mit md
und versucht rename
, auch mit UNC-Pfaden, aber es ist nicht gelungen, entweder mit der Ausgabe einer „falschen Syntax“ oder, was häufiger vorkommt, mit dem einfachen Ignorieren des Leerzeichens.
Wie kann ich es tun?
Antwort1
Um in Windows ein Verzeichnis mit einem abschließenden Leerzeichen zu erstellen, öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:
md "\\?\C:\mydirectory "
Das Verzeichnis muss ein absolutes (kein relatives) Verzeichnis sein und muss das Präfix\\?\
Ebenso können Sie das Verzeichnis mit dem Befehl rd löschen
rd "\\?\C:\mydirectory "
aber das Verzeichnis muss leer sein, bevor es mit diesem Befehl gelöscht wird.
Antwort2
Cygwin kann
$ mkdir 'abcde'
$ mkdir 'abcde '
$ mkdir 'abcde '
$ ls -l
total 0
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
ok, es hat offensichtlich funktioniert, da wir 3 verschiedene Verzeichnisse haben, aber versuchen wir, einen weiteren Beweis zu erhalten
$ echo * | xxd
0000000: 6162 6364 6520 6162 6364 6520 2061 6263 abcde abcde abc
0000010: 6465 2020 0a de .
6162 6364 65 20<---- that's the dir abcde, and echo * put a space in after as there is another item it lists.
6162 6364 6520 20 <-- that's the dir 'abcde ', and echo * displayed it with a space in as there is another item it lists
61 62636465 2020 0a <-- that's the dir 'abcde ', and echo * displayed it followed by new line(0a)
Ein anderer
ls bietet einige Formatierungsoptionen wie vertikal und andere, z. B. mit Kommas
--format=WORD
across -x, commas -m, horizontal -x, long -l, single-column -1,
verbose -l, vertical -C
--
$ ls -m
abcde, abcde , abcde
Beachten Sie das Leerzeichen vor dem Komma, das daher kommt, dass das Leerzeichen im Dateinamen vorkommt. Das ', ' dient der Formatierung. Aber ',' zeigt an, dass das Leerzeichen im Dateinamen vorkommt.
$ ls -m | xxd
0000000: 6162 6364 652c 2061 6263 6465 202c 2061 abcde, abcde , a
0000010: 6263 6465 2020 0a bcde .
--
eine sehr klare Demonstration, ohne dass man sich zur Überprüfung ein Hex ansehen muss, ist-
$ mkdir 'abcde '
$ mkdir z
$ ls -m
abcde, abcde , abcde , abcde , z
$
Eine andere Möglichkeit, wie Mafu in einem Kommentar erwähnt, ist Mingw, das ein Msys-Paket hat, das Sie im Ming-Mackage-Manager installieren können, und Msys installiert viele Befehle, z. C:\MinGW\msys\1.0\bin>
B. in mkdir.exe, und hat auch eine bash.exe
Antwort3
Beachten Sie bitte, dass das Erstellen einer Datei, die von Windows nicht unterstützt wird, dazu führen kann, dass Sie sie nicht auf normalem Wege löschen können.
Booten Sie in eine Linux-Installation oder Live-CD und führen Sie dann diesen Befehl aus
mkdir "<mountpoint>/dirname"
Sie benötigen die Anführungszeichen.