Преимущества использования xargs

Я не знаю, что делает QtGui.QDesktopServices.openUrl , но я сильно подозреваю, что он открывает URL-адрес в соответствующем приложении общение с некоторым демоном KDE через сеанс X11, а не запуск браузера непосредственно в качестве своего дочернего элемента. Вы можете проверить это, посмотрев на идентификатор родительского процесса получившегося браузера. В связи с этим не имеет значения, на какой UID переключился ваш скрипт - имеет значение только uid демона.

Запуск сеансов X11 от имени root - обычно плохая идея. Могу я предложить запустить сеанс X11 от имени обычного пользователя и иметь только ваш сценарий Python, запускаемый от имени пользователя root (только если он проверен и только если вам это действительно нужно)?

1
25.11.2018, 02:39
2 ответа

xargs помогает выполнять команды в строках вывода, например:

find. -name '*.mp3' | xargs mp3info

для каждого файла, найденного с помощью find (, т.е. строка вывода)

mp3info <filename>

выполняется

Если вы хотите что-то сделать с целыми выводами find, вам вообще не нужны xargs.

0
27.01.2020, 23:45

xargsпринимает строки из стандартного ввода и командной строки в своей собственной командной строке. Он запускает командную строку, используя строки из стандартного ввода в качестве аргументов для командной строки. Это в основном делает косвенность. Если у вас есть список имен файлов (, например, findпроизводит ), вы можете выполнять операции с отдельными файлами (или их содержимым )с помощью xargs. Например, получить топ -20 частотных слов из нескольких текстовых файлов:

find. -name '*.txt' | xargs cat | tr -s '[:blank:]' '\n' | sort | uniq -c | sort -k1.1nr | head -20

Я не уверен, что стоит выполнять задачу из вопроса 1. Я уверен, что это можно сделать, но зачем? И вот ответ на вопрос 2 :нет преимущества ни в исполнении, ни в ясности намерения.

В общем, преимущество использования xargsзаключается в том, что вы можете делать сложные вещи, чтобы решить, какие имена файлов помещать в стандартный ввод. К вашему findможет быть добавлено время -создания -, или более одного глобуса имени, или что-то еще. Просто наличие статического списка имен файлов сводит на нет любое преимущество, которое вы могли бы получить от xargs:, вам лучше использовать cat, иначе запуск команды xargsбудет выполняться в цикле.

1
27.01.2020, 23:45

Теги

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