Гарний стиль / практики для роздільників імен файлів (або каталогів) [закрито]


16

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

Мені було цікаво, які роздільники імен будуть одночасно найбільш зручними для Linux (або, точніше, Bash friendly ) та людьми , що відповідають інтересам людини .

Скажімо, я хочу створити каталог, який містить щось, що стосується пана Foo Bar ( Foo - це ім'я, Bar - прізвище)

Назву " Foo-Bar/" дуже зручно. -є «регулярним» характер, не потрібно екранувати, це ясно показує , що Fooі Barдві різні речі ... Ніцца.

Тепер " Foo.Bar" трохи складніше. Хтось може подумати, що Foo.Barце насправді файл (на перший погляд, особливо якщо у вас немає терміналів з увімкненим забарвленням), де " Foo" є ім'я файлу та " Bar" розширення.

Я також міг би використовувати " Foo Bar", але тоді мені потрібно вийти з простору пробілів, коли я хочу отримати доступ до каталогу, і, якщо я хочу перерахувати вміст батьківського каталогу (де Foo Barвін знаходиться) і помістити зазначений список у масив bash, білий простір буде створювати неприємності (багато). Недобре.

Дужки ()також викликають багато проблем. Їх також потрібно уникати, щоб потім викликати проблеми з командами як scp... Не приємно.

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



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

Відповіді:


14

Коротка відповідь: "Foo _-_ Bar"

Довга відповідь:

Щоб полегшити процес виявлення, я, як правило, використовую послідовність символів у тих областях, де це потрібно, ідея полягає у використанні чогось, що легко помітити, щоб ви зрозуміли, що це роздільник, можливо, щось на кшталт "_-_" або " ___ ".

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

  • 01_Blue_Man_Group _-_ Above.mp3
  • 02_Blue_Man_Group _-_ Time_to_Start.mp3
  • 03_Blue_Man_Group _-_ Sing_Along.mp3

Тепер це можна перекласти у ваш приклад, якщо Foo і Bar - це дві логічні речі, які не повинні змішуватися, і це може бути Foo _-_ Bar.


2
І таким чином можна також виділити імена, які вже містять тире (або роздільники взагалі).
lynxlynxlynx

1
Також дуже приємно reg ex parse! : ^ (. +) _-_ (. +) \. mp3 $
DanDan

Враховуючи, що люди переглядали б ці файли, це хороша відповідь; По суті, я вважав би це роздільним рядком; Багатозначний унікальний роздільник. У Vagrant я помітив, що він використовує рядок VAGRANTSLASHу назвах файлів, де розділення.
ThorSummoner

9

Із такою кількістю символів, що, можливо, ви не думаєте, що вони повинні бути особливими, адже вони є особливими, я все одно просто використовую спеціальні символи. Це також ставить мене в хороші звички використовувати bash завершення, де воно автоматично уникає всіх спеціальних символів у імені файлу. Але це також вкладає в мене гарні звички бігти / цитувати ВСЕ у сценаріях та багатошарових 1-лайнерах в bash.

Наприклад, у простому 1-вкладиші:

for file in *.txt; do something.sh "$file"; done

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

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

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

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

Підбиття підсумків: Пробіли не є недійсним символом, тому немає ніяких причин не використовувати їх.


6

Я використовую тире -з причин, які ви згадали вище. Я уникаю підкреслювань, тому що вони вимагають використання клавіші "shift", тому введіть щонайменше вдвічі більше часу (також, я думаю, вони некрасиві)

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


5

Я використовую підкреслення ( _). Візуально вони зникають і легко набираються та не відрізняються особливістю.


4
мені здається, що вони гірші, ніж їх -складніше (потрібно використовувати клавішу shift)
tshepang
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.