Расположение файлов домашней конфигурации: ~ /, ~ / .config / и ~ / .local / share /

Учебник, на который вы ссылаетесь, очень поверхностен.

Если вы хотите серьезно использовать sed, я предлагаю вместо него http://www.grymoire.com/Unix/Sed.html .

Команда s в sed принимает из шаблона , в строку и, возможно, некоторые флаги . Обычно они разделяются символом / , но могут использоваться любые знаки препинания, и это целесообразно, если аргументы from или to содержат символы /.

Итак, в этом случае флаги равны g , шаблон from - (^ [a] | \. [Az]) , а строка to - \ U & \ E

На этом этапе вам нужно знать, как понимать шаблон from. Символы () используются для группировки частей рисунка вместе. Операции | являются операциями или , поэтому this | that будет соответствовать либо this , либо that . ^ соответствует началу строки, а [a] соответствует букве a , поэтому ^ [a] соответствует буква a в начале строки. \. соответствует . , пробел соответствует пробелу, а [az] соответствует символу между a и z включительно (надеюсь, это все строчные буквы буквы и больше ничего). Собирая это вместе, вы получаете \. [a-z] соответствует точке (точке), за которой следует пробел, за которым следует буква между a и z включительно.

Строка to \ U & \ E декодируется следующим образом. & - символы, соответствующие шаблону from. \ U говорит о преобразовании в верхний регистр, а \ E говорит о завершении преобразования. \ U и \ E - это расширения gnu для sed. Вот POSIX sed

Флаги g говорят, что нужно повторять сопоставление столько раз, сколько возможно, и делать замены.

Таким образом, код, который вы скопировали из учебного пособия, преобразует либо нижний регистр a в начале строки, либо последовательность «период пробела lower_case_letter» в верхний регистр.

12
28.09.2016, 20:48
1 ответ

Когда дело доходит до общего случая «точечных файлов», здесь долгая история, но каталоги $ HOME / .config и $ HOME / .local , которые вы специально Упоминания имеют происхождение из XDG Base Directory Specification .

  • $ HOME / .config - это файлы конфигурации для каждого пользователя, если нет $ XDG_CONFIG_HOME .
  • $ HOME / .cache - это файлы кеша для каждого пользователя, если нет $ XDG_CACHE_HOME .
  • $ HOME / .local / share - это то место, куда отправляются файлы данных для каждого пользователя, если нет $ XDG_DATA_HOME .

Пользователи Windows могут признать это аналогом того, что Microsoft использовала в Windows NT, начиная с версии 4 (хотя имена изменились в версии 6.0):

  • % USERPROFILE% / AppData / Local / aka % LOCALAPPDATA% - куда идут файлы данных для каждого пользователя для этого компьютера
  • % USERPROFILE% / AppData / Roaming / aka % APPDATA% - где файлы данных для каждого пользователя, которые пользователь в роуминге может получить доступ с нескольких машин:
  • % USERPROFILE% / AppData / Local / Temp / aka % TEMP% - куда попадают временные файлы для каждого пользователя

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

(MacOS имеет аналогичную систему, в которой пользователи получают отдельные "локальные" поддеревья для каждого пользователя в / var / folder с подкаталогами C и T для кэш и временные файлы.)

Как отмечают специалисты Arch, есть некоторые "точечные" файлы и каталоги, которые стали широко использоваться несколькими приложениями и вряд ли согласятся с XDG в обозримом будущем, например $ HOME / .ssh и $ HOME / .netrc .

Дополнительная литература

37
27.01.2020, 19:56

Теги

Похожие вопросы