Одно абсолютное правило - нельзя использовать косую черту /
или нулевой байт в имени файла. Косая черта - это разделитель каталогов, и его нельзя избежать. Нулевые байты указывают на конец имени и также не могут быть экранированы. Кроме того, в Linux разрешен любой символ (кроме случаев доступа к медиа или сетевым ресурсам, совместно используемым с другими файловыми системами), но некоторое количество символов может вызвать проблемы. Я думаю, что все современные * BSD также допускают любые символы, кроме /
и нулевых байтов, но у некоторых старых юниксов было больше ограничений.
Если вы хотите, чтобы имя файла работало в общей оболочке без кавычек, вам нужно избегать ! "# $ & '() *; <=>? [\] ^` {|} ~
и пробел (пробел, табуляция, новая строка). ~
нормально, если он находится в конце. В частности, в bash, ^
нормально, #
и ~
можно использовать везде, кроме начала, а =
можно использовать, за исключением имени команды (потому что это будет интерпретироваться как присвоение).
Помимо этого, вот несколько советов по переносу имени файла , в приблизительном порядке важности.
-
(тире / дефис). Команды могут интерпретировать это как параметр. ] ~
(тильда), потому что во многих приложениях это означает «домашний каталог». | foo
, что означает «прокрутка программы foo
», А не« записывать в файл | foo
», и аналогично с foo |
для вывода). \ /?: * "> <|
\ *? []
, потому что они подстановочные знаки . Кроме того, некоторые приложения, которые могут работать с несколькими файлами одновременно, интерпретируют эти символы как подстановочные знаки. txt
в myfile.txt
; иногда есть несколько расширений, например myfile.txt.gz
для сжатого ( .gz
) текстового ( .txt
) файла. .
скрыты по умолчанию в выводе команды ls
и во многих файловых браузерах. myfile
не связан с Myfile
. Традиционно имена файлов пишутся в нижнем регистре, в основном потому, что это упрощает их ввод. Раньше системы обычно сортировали прописные буквы перед строчными, поэтому существует традиция начинать имя файла с заглавной буквы, чтобы оно было первым в списках каталогов, но современные системы часто сортируют имена без учета регистра. Использование строчных букв позволяет избежать путаницы и легче набирать текст. Если вы не хотите запоминать все эти сложные случаи, вот только два простых правила:
a
- z
и цифр ] 0
- 9
, плюс -
для разделения слов и .extension
в конце имени файла. Например: my-file.txt
-
для разделения слов и .extension
в конце имени файла. Например: Jörgs Datei.txt
Последний совет: используйте формат ГГГГММДД (год-месяц-день, с 4 цифрами года и ведущим нулем в номере месяца и дня) для дат, например 20150622-report.txt
. Таким образом, сортировка имени файла дает вам хронологический порядок.