У меня нет Mac, поэтому я не могу рассказать о таких вещах, как ?или : в именах файлов ...

Меня особенно интересует разделитель пути Dos/Windows®:\ . Я знаю, что в Linux это юридический символ, который можно использовать внутри имен файлов fat32 (Windows® будет жаловаться, что том поврежден) .
То же самое верно для OSX? Или запуск mkdir ..\\dirent создаст dirent в родительском каталоге (все еще в случае fat32, как я уже знаю поведение на hfs) ?

Конечно, я говорю о случае, когда громкость монтируется через Finder.
В зависимости от ответа, это может подтвердить наличие уязвимости в популярном программном обеспечении для управления исходным кодом ...

1 ответ1

0

Это интересный вопрос, и мне самому пришлось выяснить это на моем MacBook с операционной системой "OS X El Capitan". Необходимо различать недопустимые символы в видоискателе / приложениях, используя видоискатель (например, текстовый редактор), и командную строку.

Прежде всего, обратная косая черта "\" похожа на любой нормальный символ как в поиске, так и в командной строке. Таким образом, вы можете создать файл или каталог, как A\B. То же самое верно и для вопросительного знака.

Когда дело доходит до двоеточия ":", тогда это становится сложным. Когда вы создаете файл с именем A:B в командной строке, он создается и правильно отображается в командной строке, но он отображается как A/B в искателе. И если вы попытаетесь создать в искателе файл, содержащий двоеточие, например C:D, вы получите ошибку «Имя C:D не может быть использовано. Попробуйте использовать имя с меньшим количеством символов или без знаков препинания. "

Создание файла или каталога, который начинается с точки "." можно сделать из командной строки, без проблем. Но поскольку файлы и каталоги такого типа используются для скрытых файлов и каталогов, вы не можете создать их в Finder. Вместо этого вы получите окно с сообщением «Вы не можете использовать имя, начинающееся с точки». », Потому что эти имена зарезервированы для системы. Пожалуйста, выберите другое имя. "Если вы выполните команду

mkdir ..\\dirent

в командной строке, то это создает скрытый каталог с именем

..\\dirent 

в текущем каталоге, поэтому не каталог с именем dirent в родительском каталоге.

Кстати: я проверил это на USB-флешке в формате fat32, но даже если бы я использовал внешний жесткий диск в формате NTFS или внутренний SSD-диск в формате HFS+, он вел себя так же.

Если я посмотрю на все эти файлы и каталоги (которые я записал на своем MacBook на USB-накопитель) в проводнике Windows (с Windows 10), то и обратная косая черта, и двоеточие, и знак вопроса отображаются по-разному, чем на MacBook, каждый из их с тем же специальным символом, который я не могу создать на своей клавиатуре, и при этом я не могу скопировать и вставить должным образом - вставка в этом окне создает «», который не похож на символ, отображаемый в проводнике Windows. В проводнике Windows это похоже на точку «.», Но эта точка расположена несколько выше обычной точки, поэтому вертикально посередине.

Я надеюсь, что смогу помочь тебе как-нибудь.

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