использование приветствия в качестве основы для блокировки приложения

Престижность за попытку понять команду с помощью руководства. Я попытаюсь объяснить, как работает команда, обратившись к каждому разделу руководства , расположенному здесь .

По сути, команда выполняет следующие действия. 1 )Он ищет внутри пути, указанного переменной $LOG _PATH, обычные файлы, которые были изменены более 60 дней назад. 2 )Для каждого допустимого результата печатается имя файла, а затем выполняется команда rmдля файла.

Подробная разбивка выглядит следующим образом. Команда find имеет базовый синтаксис, который выглядит следующим образом (некоторые дополнительные параметры были опущены для ясности):

find [starting-point...] [expression]

Отправной точкой является путь, например /home или document/. В руководстве написано:

GNU find searches the directory tree rooted at each given starting-point by evaluating the given expression from left to right, according to the rules of precedence...

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

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

The part of the command line after the list of starting points is the expression. This is a kind of query specification describing how we match files and what we do with the files that were matched.

Для простоты мы рассмотрим два типа выражений, которые появляются в вашей команде :тесты и действия.

Tests return a true or false value, usually on the basis of some property of a file we are considering.

Actions have side effects (such as printing something on the standard output) and return either true or false, usually based on whether or not they are successful.

Тестами в данном случае являются выражения -type fи -mtime +60. Тест -typeпроверяет, относится ли файл к определенному типу. -type fпроверяет, является ли файл обычным файлом. Другие варианты включают -type dдля проверки каталогов и -type lдля поиска символических ссылок.

Тест -mtime +60немного сложнее. Он проверяет, были ли изменены данные/содержимое файла более 60 дней назад. Здесь есть одна сложность::findигнорирует дроби, участвующие в вычислении модифицированного времени. В результате, чтобы успешно пройти этот тест, файл действительно нужно изменить 61 *24 часа назад. Время рассчитывается с момента выполнения команды, а не в календарных днях.

Следующее выражение в вашей findкоманде — это действие:-print. С действием -printимя файла, прошедшего тесты -typeи -mtime, печатается в стандартный вывод (по одному файлу в строке ). По сути, это дает вам результатfind:списка файлов, которые проходят указанные вами условия проверки.

Заключительная часть вашей findкоманды также является действием:-exec. Действие -execзапускает указанную команду для каждого результата find. В вашем случае это команда rm, которая удаляет файл. Фигурные скобки({})указывают, где должно быть заменено имя файла. В результате получается команда вида rm /path/to/target/file. Точка с запятой в конце указывает, что команда, указанная в -exec, должна выполняться один раз для каждого сопоставленного файла. Поскольку точка с запятой также является специальным символом оболочки, перед ней ставится обратная косая черта.

0
17.02.2021, 12:15
1 ответ

Я также являюсь любителем, но некоторые вещи, которые вы можете попробовать, — это документация для вашего типа диспетчера блокировки экрана, IE SDDM (, типичный для KDE ), и покопаться в их настройках.

KDE предлагает множество API-вызовов в своем движке для взаимодействия с этими компонентами. Хорошей отправной точкой является Arch wiki (Даже если вы не используете Arch, у них есть одна из лучших документации, которую я видел, таким образом далеко)

https://wiki.archlinux.org/index.php/SDDM

SDDM использует CSS и JS, поэтому достаточно просто разобраться в их синтаксисе, чтобы внедрить собственный вывод.

Я предполагаю, что для GDM будет примерно такая же концепция

https://wiki.archlinux.org/index.php/GDM

Немного информации об интеграции KDE

https://develop.kde.org/

Очень надеюсь, что это поможет!

1
18.03.2021, 22:31

Теги

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