Это связано с тем, что графический процессор не используется для рендеринга в вашем прецеденте. Когда вы показываете glxinfo, вы показываете, что Растеризатор программного обеспечения используется для визуализации GL для рассматриваемого X DISPLAY (предположительно пересылаемого отображения через ssh, что означает, что glxinfo запрашивает X-сервер на шлюзе для информации GL). [ ! d0]
find имеет опцию -ls. Поэтому ваша команда должна выглядеть так:
find -name '*.conf' -ls
find имеет опцию -ls. Поэтому ваша команда должна выглядеть так:
find -name '*.conf' -ls
find имеет опцию -ls. Поэтому ваша команда должна выглядеть так:
find -name '*.conf' -ls
Опция указывает ваш собственный формат с помощью -printf. Например, это выведет файл, за которым следует пробел, а затем имя файла (с относительным путем):
find -name "*.conf" -printf "%s %p\n"
Вы можете поместить строку формата с помощью \0 вместо \n, если вы хотите использовать NUL -отделить выходные записи поиска, если вы ожидаете забавные имена файлов (например, те, которые включают в себя новые строки).
Для записи попытка, показанная в вашем вопросе, не работает, потому что вы пытаются вывести выход из find для ввода в ls. ls не считывает никаких данных из STDIN, поэтому вывод из find просто отбрасывается, а затем ls перечисляет содержимое текущего каталога, как обычно.
ls не получает свой список файлов со стандартного ввода, он ожидает, что они будут аргументами. Команда xargs является общим средством для ввода входных данных в аргументы:
find -name '*.conf' | xargs ls -l
Однако это приведет к разделению ввода в пробеле, так что у вас могут быть проблемы, если какое-либо из имен имеет пробелы. find и xargs имеют параметры, которые работают вместе, чтобы смягчить это:
find -name '*.conf' -print0 | xargs -0 ls -l
Параметр -0 в xargs сообщает ему использовать нулевой байт в качестве разделителя между параметрами ввода , и -print0 сообщает find печатать имена, разделенные нулевым байтом вместо новой строки.
Другие ответы уже указывали
, как печатать файлы с помощью find, используя -printf, как получить выход ls только с find, используя -ls, как для правильного вывода вывода find в другую программу с помощью xargsОднако первый и второй подходы не дают точного выхода ls -l (флаг -ls равен ls -dils ]), а третий - дополнительный вызов xargs. С помощью флага -exec можно вызвать ls -l непосредственно из find:
find -name "*.conf" -exec ls -l {} +
Это дает полный список имен файлов в качестве аргументов ls -l и вызывает его как
Если вы просто хотите совместить все файлы, заканчивающиеся на .conf в и под текущим каталогом (и ARG_MAX не проблема !), вам вообще не нужно find. Вместо этого вы можете использовать привязку bash для сопоставления с параметрами оболочки globstar и dotglob следующим образом: это достаточно разумно, чтобы не ломать символы новой строки в именах файлов и не соответствует «скрытым» файлам, например find: 11]
$ shopt -s globstar dotglob
$ ls -l **/*.conf
Другие ответы уже указывали
, как печатать файлы с помощью find, используя -printf, как получить выход ls только с find, используя -ls, как для правильного вывода вывода find в другую программу с помощью xargsОднако первый и второй подходы не дают точного выхода ls -l (флаг -ls равен ls -dils ]), а третий - дополнительный вызов xargs. С помощью флага -exec можно вызвать ls -l непосредственно из find:
find -name "*.conf" -exec ls -l {} +
Это дает полный список имен файлов в качестве аргументов ls -l и вызывает его как
Если вы просто хотите совместить все файлы, заканчивающиеся на .conf в и под текущим каталогом (и ARG_MAX не проблема !), вам вообще не нужно find. Вместо этого вы можете использовать привязку bash для сопоставления с параметрами оболочки globstar и dotglob следующим образом: это достаточно разумно, чтобы не ломать символы новой строки в именах файлов и не соответствует «скрытым» файлам, например find:
$ shopt -s globstar dotglob
$ ls -l **/*.conf
ls не получает свой список файлов со стандартного ввода, он ожидает, что они будут аргументами. Команда xargs является общим средством для ввода входных данных в аргументы:
find -name '*.conf' | xargs ls -l
Однако это приведет к разделению ввода в пробеле, так что у вас могут быть проблемы, если какое-либо из имен имеет пробелы. find и xargs имеют параметры, которые работают вместе, чтобы смягчить это:
find -name '*.conf' -print0 | xargs -0 ls -l
Параметр -0 в xargs сообщает ему использовать нулевой байт в качестве разделителя между параметрами ввода , и -print0 сообщает find печатать имена, разделенные нулевым байтом вместо новой строки.
и другие ответы уже отмечали
как распечатать файл с find, использование -printf как получить ls выход с find, использование -ls как правильно трубы find с выхода в другую программу с помощью [F9] иоднако первый и второй подход не дает точного вывода ls -l (в -ls флаг равен ls -dils) и третье необходима дополнительная [от f13] звонок. С помощью -exec флаг это можно назвать ls -l непосредственно find:
find -name "*.conf" -exec ls -l {} +
. это дает целый список имен файлов в качестве аргументов [f17 в] и называет его как раз столько раз, сколько необходимо.
если вы просто хотите, чтобы соответствовать все файлы, заканчивающиеся в .conf, и в текущем каталоге (и [зг19] не проблема!), вы на самом деле не нужен [20 фунтов] на всех. Вместо этого вы можете использовать клавиши f21] с глоб соответствие с [f22 и ф23] оболочки параметры – это в равной степени достаточно мудрый, чтобы не сломать на переводы строк в именах файлов и игр “скрытые” файлы, такие как find:
$ shopt -s globstar dotglob
$ ls -l **/*.conf
ls не получает свой список файлов со стандартного ввода, он ожидает, что они будут аргументами. Команда xargs является общим средством для ввода входных данных в аргументы:
find -name '*.conf' | xargs ls -l
Однако это приведет к разделению ввода в пробеле, так что у вас могут быть проблемы, если какое-либо из имен имеет пробелы. find и xargs имеют параметры, которые работают вместе, чтобы смягчить это:
find -name '*.conf' -print0 | xargs -0 ls -l
Параметр -0 в xargs сообщает ему использовать нулевой байт в качестве разделителя между параметрами ввода , и -print0 сообщает find печатать имена, разделенные нулевым байтом вместо новой строки.