2

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

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

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

3 ответа3

2

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

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

mkdir "<mountpoint>/dirname"

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

Смотрите это для того, чтобы удалить

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 предлагает некоторые параметры форматирования, такие как verical и другие, например, с запятыми

--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 тоже

2

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

мд "\\?\C:\mydirectory "

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

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

rd "\\?\C:\mydirectory "

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .