Використання підкреслення у назвах файлів?


26

Я часто використовую командний рядок для навігації по файлах, тому намагаюся не мати пробілів у назвах файлів. Зазвичай я використовував підкреслення для з'єднання слів, але нещодавно було запропоновано мені використовувати тире. Чи є недоліки використання підкреслення у назвах файлів? Чи варто перейти на тире? У моїй системі працює Xubuntu, і я майже виключно використовую оболонку bash.

Спасибі



1
Якщо ви будете використовувати LaTeX, можливо, доведеться захистити ім'я файлу всередині декількох дужок {...}. У випадку автоматичного сценарію вам слід це врахувати. _Використовується для створення і підрядковий повинні бути включені , наприклад , в $...$помилки уникнути, але він буде генерувати текст відрізняється від того, що ви очікуєте. У посиленому терміналі gnuplot теж ..
Хастур,

Відповіді:


23

Що стосується операційної системи, вони обидві настільки ж зручні, як одна для одної.

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

Тільки з цієї причини я б спокусився дотримуватися підкреслення.

Також дефіси використовуються для перемикання на команди, тому може бути трохи заплутано наявність дефісів у ваших іменах файлів, а також у ваших перемикачах команд.

Крім цього, це виключно особистий вибір.


1
Я використовую гіфени, але це тому, що мені подобається зовнішній вигляд краще. З технічної причини, що стоїть за цим.
beatgammit

Спасибі! Це те, що я підозрював, але я також виявив, що продовження моїх підозр самотужки може привести мене в біду.
DQdlM

16

Тире не вимагає натискання клавіші SHIFT, тобто швидше набираєш текст. Це єдина інша користь, яку я можу придумати вище, ніж запропонував містер Дженкінс.

Ймовірно, той, хто робить цю пропозицію, є завзятим користувачем Vim і бажає робити все з найменшою кількістю руху клавіатури.


7
Якби це був випадок, який вони використовуватимуть viзамість цього - один менший натискання клавіш;)
Majenko

4
@ Matt це alias«Еда vтак чи інакше ;-)
Деніел Бек

+1 З цієї ж причини я використовую підкреслення з іменами "all-caps", наприклад FOO_BAR(я не використовую "lock lock", тому приємно мати можливість утримувати Shift весь час).
Річард Хансен

@DanielBeck Я насправді маю це у своїх баш-псевдонімах, як і gдля git:)
Jan Warchoł

Я вважаю, що vim розглядає два слова, відокремлені дефісом, як одне слово, тому це може стати причиною використання підкреслень у іменах файлів як користувача vim.
oddRaven

8

Моя рекомендація - використовувати підкреслення замість пробілів. Підкреслення зазвичай є умовою, яку люди використовують під час заміни пробілів, хоча дефіси теж добре, я б сказав. Але оскільки дефіси можуть відображатися іншими способами, такими як дефіси, ви матимете більший успіх у збереженні значення імені за допомогою підкреслення. Наприклад, якщо у вас є файл під назвою "Знімок, зроблений у Вінстоні-Салемі, NC.jpg", і ви хочете перетворити пробіли в підкреслення, ви можете зберегти дефіс у назві та зберегти його значення.

Пробіли створюють проблеми людям, які хочуть використовувати командний рядок вдосконаленими способами, як-от для подібних циклів:

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

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

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


1
Я згоден повністю. Добре побудована назва файлу не потребує пробілів.
DQdlM

4
@KennyPeanuts - але добре написана програма не задихається пробілами.
detly

2
@detly - touchche '
DQdlM

1
@detly Ні, хороший програміст розуміє, що в тому, що ти можеш робити і повинен робити, повинні бути обмеження. Якщо ви говорите, що він не повинен задихатися в просторах, то хтось може це зробити і сказати, що він не повинен задихатися в кінці рядка, тоді хтось сказав би, що він не повинен задихатися /, тоді хтось може сказати, що він не повинен задихатися. в кінці файлу. Існує стара приказка «Формула для провалу: намагайся догодити усім».
дельтарай

1
Специфікація файлової системи говорить вам, до чого кодувати, ні більше, ні менше. Наприклад, у Ext2 / 3/4, ім'я файлу може містити будь-який символ, за винятком \0або \\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't \ 0` або `\`. Використання функцій бібліотеки для маніпулювання шляхами файлів - це шлях, оскільки багато інших людей вже вирішили ці проблеми.
detly

5

Єдиною причиною, з якої слід розглянути можливість використання дефісів замість підкреслення, є основна читабельність. Часті підкреслення, як правило, спотворюють читання, оскільки це змінює лінію зору від центру осі у донизу. Однак дефіси полегшують очі.

Що стосується операційної системи, то обидва символи однаково дійсні і не потребують втечі (що робити пробіли, а отже, і біль, з якою потрібно працювати).


2
Я вважаю, що основна причина читабельності є чисто суб'єктивною. Мені підкреслюються легше читати, тому що я можу в значній мірі візуально їх ігнорувати, а не читати їх, тоді як тире я насправді повинен їх читати.
goliatone

3

Я особисто віддаю перевагу дефісам над підкресленням, тому що вам не потрібно утримувати клавішу зсуву для них. Але слід пам’ятати, що якщо ви в основному робите кодування python - і у вашому кодовому дереві є файли / каталоги з дефісом у них, і ви маєте намір використовувати їх як модулі (виконайте імпортування файлу у вашому коді), це призведе до помилок оскільки модулі пітона не можуть містити дефіс в них. Звичайно, є різні способи імпорту модулів із дефісом, але я б дотримувався підкреслення, оскільки він також відповідає вказівкам PEP-8.

Так що для більшості моїх бін / програм або псевдонімів я використовую дефіси, але коли мова йде про написання програм / модулів пітон - я використовую підкреслення.


2

Є вагомі причини використовувати дефіси в будь-якому веб-контексті, який відображається у файловій системі Unix.

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

Як веб-розробник, це змусило мене дотримуватися дефісів при розділенні слів.


1
Згаданий вище контекст, ймовірно, пов’язаний, серед іншого, з повідомленням у блозі Метта Кеттса 2005 року, який передбачає алгоритмічну перевагу Google щодо дефісів проти підкреслення як кращий показник заповнення білого простору.
jmmygoggle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.