Я не совсем уверен, является ли это "правильным" вопросом для публикации здесь. Я, наверное, спрашиваю больше о «мнениях», чем реальных категориальных ответах (тех, которые либо работают, либо нет, и все тут).
Мне было интересно, какие разделители имен будут наиболее дружественными для Linux (или, точнее, для Bash ) и дружественными для человека одновременно.
Допустим, я хочу создать каталог, содержащий что-то, относящееся к мистеру Фу Бару (имя Фу - Фа , фамилия Бар )
Иметь имя " Foo-Bar/
" очень удобно. -
является «регулярным» характер, не нужно экранировать, это ясно показывает , что Foo
и Bar
две разные вещи ... Ницца.
Теперь " Foo.Bar
" немного сложнее. Кто-то может подумать, что Foo.Bar
на самом деле это файл (на первый взгляд, особенно если у вас нет терминалов с включенной раскраской), где " Foo
" - это имя файла, а " Bar
" расширение.
Я мог бы также использовать « Foo Bar
», но тогда мне нужно экранировать пробелы, когда я хочу получить доступ к каталогу, и, если я хочу Foo Bar
вывести список содержимого родительского каталога (где он расположен), и поместить указанный список в массив bash, пустое пространство будет вызывать проблемы (много). Не хорошо.
Скобки ()
также вызывают много проблем. Они также должны быть экранированы, а затем вызывать проблемы с командами, как scp
... Не приятно.
Итак ... вопрос (наконец-то): если вам нужно сделать имя файла понятным и осмысленным с первого взгляда, и вам нужно использовать разделители, что вы используете?
Ответы:
Краткий ответ: "Foo _-_ Bar"
Длинный ответ:
Чтобы упростить обнаружение, я обычно использую последовательность символов в областях, где это необходимо, идея состоит в том, чтобы использовать что-то, что легко обнаружить, и вы получите, что это разделитель, может быть, что-то вроде «_-_» или « ___».
Практическим примером, где я использую это, является моя коллекция mp3, где имена файлов содержат имя исполнителя и название песни, а иногда и порядковый номер. И если вы используете магическую последовательность для их разделения, это будет легко как для глаз, так и для сценариев. Пример mp3 может выглядеть примерно так.
Теперь это можно перевести на ваш пример, если Foo и Bar - это две логические вещи, которые не должны смешиваться, и тогда это может быть Foo _-_ Bar.
источник
VAGRANTSLASH
в именах файлов, где разделение.С таким количеством символов, которые вы, возможно, не считаете особенными, на самом деле они особенные, я все равно использую специальные символы. Это также дает мне хорошие привычки использовать завершение bash, когда оно автоматически экранирует все специальные символы в имени файла. Но это также дает мне хорошие привычки избегать / цитировать ВСЕ в скриптах и многочастных 1-строчках в bash.
Например, в простой 1-строчной строке:
for file in *.txt; do something.sh "$file"; done
Таким образом, даже если в одном из файлов есть пробел или какой-либо другой символ,
do
часть цикла все равно будет действовать на него и не пропустит 2 или более частей имени файла, что может вызвать непреднамеренные побочные эффекты.Так как я не могу управлять именами пробел / не пробел КАЖДОГО файла, с которым я сталкиваюсь, и если бы я попытался, он, вероятно, где-нибудь сломал бы некоторые символические ссылки, что привело бы к еще более непредвиденным последствиям, я просто ожидаю, что все имя файла / имя каталога может содержать пробелы, и просто процитировать / экранировать все переменные для компенсации.
Итак, я просто использую любые символы, которые я хочу (часто пробелы) в именах файлов.
Я даже использую пробелы в именах наборов данных ZFS, которые, как я должен признать, вызвали изрядное количество головокружений среди разработчиков, которые пишут программное обеспечение для NAS, которое я использую.
Подведение итогов: пробелы не являются недопустимым символом, поэтому нет причин не использовать их.
источник
Я использую тире
-
по причинам, которые вы упомянули выше. Я избегаю подчеркиваний, потому что они требуют использования клавиши Shift, поэтому набирайте текст как минимум вдвое дольше (я думаю, они уродливы)Я более склонен делать это для имен файлов сценариев, чем что-либо еще - я думаю, для меня важнее четко определить, для чего предназначен сценарий. Файлы документов - это просто инертные данные, но сценарии потенциально опасны при неправильном использовании.
источник
Я использую подчеркивание (
_
). Визуально они исчезают, и их легко набирать, а не особенных.источник
-
, и их сложнее набрать (нужно использовать клавишу Shift)