Как подключить вывод поиска к другому вызову find

Вот что я пытаюсь сделать

find . -maxdepth 1 -type d -print0 | xargs -0 -P4 find -name 'war' -type d 

Я хотел бы создать список имен каталогов с нулевым завершением, а затем передать этот список в xargs, который для каждого имени каталога вызывает find, используя пул из 4 процессов.

Моя проблема: как мне получить доступ к stdin в команде piped-to find? Что-то вроде

 find <STDIN> -name 'war' -type d 

  • xargs не запрашивает после каждой строки
  • Что такое replstrs как {}?
  • Почему «{}» и «%» обычно используются как переменные в xargs?
  • Почему в этом случае использование xargs завершилось неудачей?
  • Почему xargs -I подразумевает -L 1
  • Как перемещаться по xargs, где каждый скрипт использует общую переменную env
  • Удаление номеров из имен файлов
  • Ни для чего ничего не нужно для xargs
  • 2 Solutions collect form web for “Как подключить вывод поиска к другому вызову find”

    использовать это:

     find . -maxdepth 1 -type d -print0 | xargs -0 -I {} -P4 find "{}" -name "war" -type d 

    лучший способ исключить . дорожка:

     find . -maxdepth 1 -not -path . -type d -print0 | xargs -0 -I "{}" find "{}" -name "war" -type d 

    Find не может прочитать свой путь от stdin, вы не можете указать - как со многими другими программами.

    Я рекомендую вам параллельно использовать GNU для параллельной работы:

     find . -mindepth 1 -maxdepth 1 -type d -print0 | parallel -0 --jobs 4 \ find {} -name "war" -type d 

    Обратите внимание на добавленный -mindepth 1 до первого поиска. Если вы не включите это, текущий каталог ( . ) Будет передан в одно из находок, и вы получите двойные результаты.

     $ mkdir abcde $ mkdir b/war c/war $ find . -mindepth 1 -maxdepth 1 -type d -print0 | parallel -0 --jobs 4 \ find {} -name "war" -type d ./b/war ./c/war $ find . -maxdepth 1 -type d -print0 | parallel -0 --jobs 4 \ find {} -name "war" -type d ./c/war ./b/war ./c/war ./b/war 
    Interesting Posts

    Можем ли мы настраивать разные оболочки для разных пользователей в одном дистрибутиве Linux / Unix?

    Доступна ли удаленная система с SSH с системным буфером обмена?

    есть ли какая-либо польза для папки / selinux, когда я не использую selinux?

    Дисплей выключается во время просмотра фильма через 10 минут независимо от настроек в элементарной ОС

    Предотвратите нажатие клавиши Alt в меню фокусировки в Gtk 3

    включите numlock на экране входа в систему. GDM

    Linux Mint Olivia не обнаруживает графику HD4000 Intel

    Моя awk-программа для изменения пробелов в вкладках не работает

    FreeBSD: перезапустить одну услугу каждый раз, когда перезагружается

    Как я могу запустить Xromium в полноэкранном режиме под X?

    Как я могу постоянно запускать скрипт bash, проверяя, изменилось ли значение?

    Установка удаленной файловой системы через SSH как другого пользователя

    notepad ++ добавляет \ r к скриптам оболочки

    Как выполнить команду после запуска сети в Solaris?

    ACL назвал групповые разрешения не переопределением прав доступа к файлам. Зачем?

    Linux и Unix - лучшая ОС в мире.