Как создать каталог с конечным пробелом?

Как создать каталог с конечным пробелом?

Я использую Windows 7 и мне нужно, по не зависящим от меня причинам, создать каталог, заканчивающийся на один пробел. Он будет содержать различные файлы и подкаталоги.

Я пробовал mdи rename, также с путями UNC, но это не удалось, либо выдавая «неправильный синтаксис», либо, что чаще, просто игнорируя пробел.

Как мне это сделать?

решение1

Чтобы создать каталог в Windows с конечным символом пробела, откройте командную строку и введите следующее:

md "\\?\C:\mydirectory "

Каталог должен быть абсолютным (не относительным) и иметь префикс\\?\

Аналогично вы можете удалить каталог с помощью команды rd

rd "\\?\C:\mydirectory "

но перед удалением с помощью этой команды каталог должен быть пустым.

решение2

cygwin может

$ 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

хорошо, это явно сработало, поскольку у нас есть 3 отдельных каталога, но давайте попробуем получить какие-то дополнительные доказательства

$ 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)

Другой

ls предлагает некоторые параметры форматирования, такие как вертикальный и другие, например, с запятыми

--format=WORD
       across -x, commas -m, horizontal -x, long -l, single-column  -1,
       verbose -l, vertical -C

--

$ ls -m
abcde, abcde , abcde

Обратите внимание на пробел перед запятой, потому что пробел есть в имени файла. ', ' — это форматирование. Но ' ,' показывает, что пробел есть в имени файла.

$ ls -m | xxd
0000000: 6162 6364 652c 2061 6263 6465 202c 2061  abcde, abcde , a
0000010: 6263 6465 2020 0a                        bcde  .

--

очень наглядная демонстрация без необходимости смотреть на какой-либо гексагон для проверки, это-

$ mkdir 'abcde           '


$ mkdir z


$ ls -m
abcde, abcde , abcde  , abcde           , z


$

Другой способ, как упоминает Mafu в комментарии, — это Mingw, в котором есть пакет Msys, который можно установить в менеджере Ming Mackage, а Msys устанавливает много команд, C:\MinGW\msys\1.0\bin>например, mkdir.exe, а также имеет bash.exe.

решение3

Обратите внимание, что создание файла, не поддерживаемого Windows, может привести к ситуации, когда вы не сможете удалить его обычными способами.

Загрузите установочный файл Linux или Live CD, затем выполните эту команду

mkdir "<mountpoint>/dirname"

Вам понадобятся кавычки.

Посмотрите здесь, как удалить

Связанный контент