Рабочая ОС на 64 бита, Найдите все программы на 32 бита в системе

Необходимо смочь изменить настройки путем щелчка правой кнопкой по нижней панели. Если я помню; существует флажок, который говорит, что что-то как "сохраняет окна на их собственном рабочем столе" или чем-то к тому эффекту.

1
14.06.2012, 03:12
2 ответа

Это - вид сырой нефти, но должно добиться цели

find / -mount -type f -perm /111 -exec sh -c 'objdump -f {} | grep -q elf32 && echo {}' \;
  • -mount сохраняет нас на / файловая система
  • -type f ограничивает его файлами только
  • -perm /111 ограничивает его файлами с исполняемым битом
  • затем мы работаем objdump -f на файле и echo имя файла, если objdump содержит elf32

Первые 3 фильтра именно так, мы сужаем результаты немного и не работаем objdump на каждой вещи.

1
27.01.2020, 23:39
  • 1
    1) find $(echo $PATH|sed -e 's/:/ /g') заставит его быстрее пойти; 2) -mount является довольно устаревшим, это -xdev теперь; 3) objdump берет набор файлов хорошо, таким образом, это - лучший канал это с ними, уменьшая затраты на исполнительные вызовы: objdump -f /bin/echo /bin/date |fgrep elf64/bin/echo: file format elf64-x86-64 /bin/date: file format elf64-x86-64 –  poige 13.06.2012, 06:58
  • 2
    Да, забытый мой фаворит: избегать использования grep когда fgrep достаточен — unix.stackexchange.com/questions/21020 / … –  poige 13.06.2012, 07:00
  • 3
    poige, необходимо выпустить собственный ответ с теми модификациями. –  Jodie C 13.06.2012, 07:50
  • 4
    @poige (1) ограничивает его слишком много, по-моему, -mount более совместимо, чем -xdev, выполнение его файл за один раз делает его инструментом для очистки для показа просто имени файла соответствия. –  Patrick 13.06.2012, 15:03
  • 5
    , Если Вы парни хотите продолжать спорить об этом, берет его для обсуждения; комментарии не хороши для этого вида вещи –  Michael Mrozek♦ 14.06.2012, 20:19

Это возьмет навсегда:

find /|parallel -n100 file {}|grep "ELF 32.*executable"

Это должно работать все же. Необходимо будет удостовериться, что Вы имеете GNU parallel установленный

1
27.01.2020, 23:39
  • 1
    Выполнение параллельно не является хорошей идеей здесь: это - задача I/O-bound, имение нескольких процессов, конкурирующих за файловую систему, более вероятно, замедлит выполнение. Если у Вас есть несколько дисков, можно получить ускорение путем выполнения отдельного find для каждого диска. Даже с RAID-1, find конкурирует с file в некоторой степени, но возможно parallel -n2 file убыстрился бы немного. –  Gilles 'SO- stop being evil' 14.06.2012, 03:13
  • 2
    parallel -n100 не отделит 100 задач, это будет только работать по одному последовательно и давать самое большее 100 аргументов каждому экземпляру. Посмотрите макс.-args опцию в странице справочника –  Jodie C 14.06.2012, 04:01
  • 3
    параллели GNU, О, извините, да. Никакой смысл в вызове parallel если Вы не собираетесь использовать параллелизм все же. –  Gilles 'SO- stop being evil' 14.06.2012, 04:06
  • 4
    Параллель имеет намного лучшую обработку специальных имен файлов. Например, find /|xargs -n100 -i file {} бросил бы ошибки на первое имя файла с одинарной кавычкой в нем, в то время как GNU parallel будет счастливо тащиться вперед. –  Jodie C 14.06.2012, 04:09
  • 5
    find / -exec file {} + –  Gilles 'SO- stop being evil' 14.06.2012, 04:10

Теги

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