21

Я часто использую командную строку для навигации по моим файлам, поэтому стараюсь не использовать пробелы в именах файлов. Обычно я использовал подчеркивание для соединения слов, но недавно было предложено использовать тире. Есть ли недостатки в использовании подчеркивания в именах файлов? Должен ли я перейти на тире? Моя система работает под управлением Xubuntu, и я почти исключительно использую оболочку bash.

Спасибо

6 ответов6

20

Что касается операционной системы, то они обе так же удобны, как и другие.

Я хотел бы отметить одну вещь - некоторые программы (например, некоторые системы воспроизведения видео - XBMC и т.д.) Будут автоматически заменять подчеркивания пробелами при отображении файлов, чтобы они выглядели лучше.

Только по этой причине я бы соблазнился подчеркнуть это.

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

Кроме этого, это зависит только от личного выбора.

16

Dash не требует от вас нажатия SHIFT, что означает, что вы печатаете быстрее. Это единственное другое преимущество, о котором я могу подумать выше того, что предложил мистер Дженкинс.

Вероятно, человек, делающий это предложение, является заядлым пользователем Vim и хочет делать все с наименьшим количеством движений клавиатуры.

8

Я рекомендую использовать подчеркивания вместо пробелов. Подчеркивание обычно является условием, которое люди используют при замене пробелов, хотя я бы сказал, что дефисы тоже подойдут. Но поскольку дефисы могут отображаться другими способами, такими как перенос слов, вам будет легче сохранить значение имени с помощью подчеркивания. Например, если у вас есть файл с именем «Снимок, сделанный в Уинстон-Сейлем, NC.jpg», и вы хотите преобразовать пробелы в подчеркивания, вы можете сохранить дефис в имени и сохранить его значение.

Пробелы вызывают проблемы у людей, которые хотят использовать командную строку расширенными способами, такими как циклы for, например так:

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

Если у любого из mp3-файлов, совпадающих с этим подстановочным знаком, есть пробелы в их имени, это приведет к тому, что имя файла будет разбито на части вместо целых. Вы можете обойти это, изменив переменную IFS оболочки BASH или используя команду find, но это раздражает, и многие люди не знают этого, поэтому это может вызвать проблемы.

Я сомневаюсь, что эта или даже кампания с наклейками на бампере помешает людям ставить пробелы в именах файлов, но если вы хотите помочь себе, предоставьте вам больше власти и поблагодарите вас от имени тех из нас, кто заботится.

5

Единственная причина, по которой вы должны рассмотреть возможность использования дефисов вместо подчеркивания, заключается в простоте чтения. Частые подчеркивания имеют тенденцию искажать чтение, так как оно меняет линию вашего зрения от центра оси Y к основанию. Дефисы, однако, облегчают глаза.

Что касается операционной системы, оба символа одинаково действительны и не требуют экранирования (что делает пробел, и, следовательно, с ним трудно работать).

3

Лично я предпочитаю дефисы подчеркиванию, потому что вам не нужно удерживать клавишу Shift для них. Но следует помнить одну вещь: если вы в основном делаете кодирование на Python - и в вашем кодовом дереве есть файлы / каталоги с дефисом, и вы намерены использовать их в качестве модулей (выполните импорт файла в вашем коде), то это вызовет ошибки поскольку модули Python не могут содержать дефис. Конечно, существуют обходные способы импорта модулей, в которых есть дефис, но я бы придерживался подчеркивания, поскольку он также следует рекомендациям PEP-8.

Так что для большинства моих bin/ программ или псевдонимов я использую дефисы, но когда дело доходит до написания программ / модулей на python - я использую подчеркивание.

2

Существуют веские причины использовать дефисы в любом веб-контексте, который сопоставляется с файловой системой Unix.

URL               What search indexes see
foo-baz-bang      foo baz bang
foo_baz_bang      foobazbang

Как веб-разработчик, это заставило меня придерживаться дефиса при разделении слов.

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