Как мне создать имя файла с недопустимыми символами, такими как:?>?

11

Мне нужно создать файл с именем файла, например :>?, возможно ли это как-то? Windows это останавливает.

moorecats
источник
5
У каждого ограниченного символа есть другое значение или использование, поэтому, если имя файла или папки действительно содержит их, это может привести к возникновению Bad Things ™. Не возражаете, если я спрошу, почему вы пытаетесь это сделать?
DMA57361
@ DMA57361, когда я делал это несколько лет назад, я проверял некоторые вещи. Если я правильно помню, результаты были забавными, но я не помню ничего особенно плохого . Самое большее, я просто не мог получить к ним доступ. (Хотя я полагаю, что это может вызвать проблемы, если, например, у вас есть файлы с именами a, bи вы a>btype a>b
пытаетесь
@moorecast, когда я делал это несколько лет назад, я создавал файлы / каталоги с фиктивными именами, а затем использовал редактор дисков, чтобы вручную устанавливать имена в записях каталога. Конечно, это было на томе FAT32, так что это было очень легко. Это было бы немного сложнее на томе NTFS.
Synetech
2
Mind if I ask why you are trying to do this?Может быть, реализовать (плохую) защиту от копирования ?
Synetech
«Мне нужно создать файл с именем файла, например:>?» - Сомневаюсь, что тебе нужно это сделать.
Джим Балтер

Ответы:

14

К сожалению, вы не можете использовать зарезервированные символы при создании папок или файлов, поскольку они являются частью системных функций.

То, что я рекомендую вам сделать, это просмотреть Character Mapприложение - вы можете запустить и набрать charmap.

отсюда вы можете найти альтернативные символы, которые выглядят одинаково, например:

(скопируйте и вставьте их, вы увидите, что они разные)

Вместо косой черты /- вы можете использовать символ деления

Вместо двоеточия :- вы можете использовать модификатор буквы двоеточия

и так далее!

альтернативный текст

Уильям Хилсум
источник
Делая это еще сложнее удалить! :-)
Арджан
3
@Arjan - только через командную строку .. даже тогда вы можете использовать клавишу табуляции для автозаполнения.
Уильям Хилсум
4
/косая черта - не обратная косая черта
приостановлена ​​до дальнейшего уведомления.
1
Я использовал этот трюк для определенных ситуаций, например, когда мне нужно поставить вопрос в имени файла ( почему Microsoft оставил вопросительный знак зарезервированным? ఠ_ఠ) К сожалению, мне пришлось прекратить использовать любые символы не ASCII, потому что они вызывают проблемы с такими вещами, как программы дефрагментации, которые по какой-то причине кажутся неспособными перемещать файлы с символами Unicode в именах. ಠ ~ ಠ
Synetech
Если подумать, этот ответ на самом деле тоже не отвечает на вопрос. Есть ответы ниже , что делать , так что это тоже должно быть просто комментарий.
Synetech
5

Вы можете загрузиться с диска Linux (например, Knoppix ) и смонтировать раздел NTFS.

Linux имеет гораздо меньше ограничений на имена файлов, и позволит вам создавать такие имена (я пробовал).

sleske
источник
5

Некоторые операционные системы запрещают отображение определенных символов в именах файлов: (Ресурс из Википедии )

/ slash используется в качестве разделителя компонентов имени пути в системах Unix-like, Windows и Amiga. (Оболочка MS-DOS command.com будет использовать его как символ переключения, но сама Windows всегда принимает его как разделитель [2] [расплывчато])

\ backslash Также используется как разделитель компонентов имени пути в MS-DOS, OS / 2 и Windows (нет разницы между косой чертой и обратной косой чертой); разрешено в Unix имени файла

? знак вопроса, используемый в качестве подстановочного знака в Unix, Windows и AmigaOS; отмечает один символ Разрешено в Unix имена файлов

* звездочка используется в качестве подстановочного знака в Unix, MS-DOS, RT-11, VMS и Windows. Отмечает любую последовательность символов (Unix, Windows, более поздние версии MS-DOS) или любую последовательность символов в базовом имени или расширении (таким образом, « . » В ранних версиях MS-DOS означает «все файлы». Допускается в именах файлов Unix ,

: двоеточие используется для определения точки монтирования / диска в Windows; используется для определения виртуального устройства или физического устройства, такого как накопитель на AmigaOS, RT-11 и VMS; используется в качестве разделителя пути в классической Mac OS. Удваивается после имени в VMS, указывает имя узла DECnet (эквивалентно имени хоста NetBIOS (сеть Windows), которому предшествует "\".)

| вертикальная черта обозначает программную конвейеризацию в Unix и Windows; разрешено в именах файлов Unix

"кавычка используется для обозначения начала и конца имен файлов, содержащих пробелы в Windows

<меньше, чем используется для перенаправления ввода, разрешено в именах файлов Unix

> больше, чем используется для перенаправления вывода, разрешено в именах файлов Unix

, период разрешен, но последнее вхождение будет интерпретироваться как разделитель расширений в VMS, MS-DOS и Windows. В других ОС, обычно рассматриваемых как часть имени файла, допускается более одной полной остановки.

subanki
источник
2
Вы можете безопасно набрать гиперболу <bold>: есть возможность импортировать файлы с недопустимыми символами, superuser.com/questions/31587 .
Гиперслуг
2
Вопрос не в том, почему я не могу использовать некоторые символы в именах файлов ; это как я могу заставить использование зарезервированных символов . Таким образом, этот ответ является ответом на другой вопрос. Самое большее, это должен быть комментарий со ссылкой на статью в Википедии.
Synetech
2

Единственный способ - отредактировать жесткий диск вручную с помощью такой программы, как HxD . Если вы сделаете это, скорее всего, файлы не будут доступны любой программе. Например, если вы попытаетесь открыть файл с именем abc\def.txt, вы получите сообщение о том, что каталог abcне существует.

zildjohn01
источник
+1 Так я и сделал некоторое время назад. Я легко мог использовать каждый зарезервированный символ, непосредственно редактируя записи каталога FAT. (Это также возможно в NTFS, но немного более
сложно
2

Вы можете установить Подсистему для приложений Unix, если вы используете Ultimate или Enterprise. Оттуда вы можете создавать такие имена.

детеныш
источник