Есть ли какие-либо недостатки в экранировании всех символов пути к файлу Unix? Под недостатками я имею в виду: ограничение любого рода, случаи, когда путь к файлу не может быть интерпретирован оболочкой Unix и т. Д..
Пример:
/my/path/to/file.txt
становится
\/\m\y\/\p\a\t\h\/\t\o\/\f\i\l\e\.\t\x\t
Примечания:
- Читаемость не является проблемойздесь для автоматизации.
- Оболочка: Bash Shell и C Shell
Причина:
Я пишу небольшое приложение на Pythonтранскодировать изображения и видео, используя различные командные строки в Unix's Bash Shell (FFMPEG, Handbrake, FFPROBE, ImageMagick для идентификации и преобразования).У некоторых путей к файлам есть пробелы, символы скобок и т. Д. Имена файлов с такими символами обычно разбивают командные строки в этих инструментах, если эти символы не экранированы должным образом.Я бы предпочел найти решение, которое применимо в целом, а не экранировать только несколько символов, таких как пробелы, скобки и т. Д. Особенно в контексте, где я не контролирую имена файлов и пытаюсь сделать свое приложениемаксимально надежный при работе с именами файлов со специальными символами.Следовательно, решение избежать всего.
Результаты:
Я избежал всех символов, и у меня не возникло никаких проблем, кроме как в случае модулей / функций Python OS, которые ужеобрабатывать имя файла для конкретных ОС (в этом случае экранирование всех символов является проблемой, но я ожидал этого).Поэтому я бы сказал, что экранирование всех символов не имеет никаких недостатков (кроме случая, который я упоминал ранее).
С уважением,
symbion