Действительно ли возможно вложить, 'находят - должностное лицо' в другой 'находит - должностное лицо'?

Смотря наверху Спецификаций Основы Open Group, Вы будете видеть стандартный идентификатор Станд. IEEE 1003.1-2008. Станд. IEEE 1003.1 - то, что известно как POSIX.1 с 2 008 просто быть последним воплощением. Смотря на POSIX на Википедию, Вы будете видеть, что стандарт содержит три части включая:

  • Основные определения, выпуск 7
  • Системные интерфейсы и заголовки, выпуск 7
  • Команды и утилиты, выпуск 7

В основном POSIX является просто названием стандарта, разработанного IEEE с начальной версией, сделанной в 1988. POSIX не является UNIX™ официально просто, потому что IEEE не владеет товарным знаком, но это - среда операционных систем и интерфейс, найденный в системах UNIX™. Позже, Open Group, которая управляет товарным знаком UNIX™, занялась созданием стандарта на основе POSIX под названием Единственная версия 2 или SUSv2 Спецификации UNIX. Теперь эти две спецификации разрабатываются совместно как Austin Group. Последняя версия является SUSv4. Так, для подведения:

POSIX:2008 = станд. IEEE 1003.1-2008 = SUSv4 = открыть Group Specification Issue 7.

Кроме того, прочитайте мой ответ на то, Что такое точно POSIX?

14
13.04.2017, 15:37
3 ответа

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

find .*/ -maxdepth 1 -type f -name '*.ini' -execdir md5sum {} +

или даже (нет find вообще просто окружите globbing),

md5sum .*/*.ini

хотя этому недостает -type f проверьте поэтому только работы, если у Вас нет directories/non-files, заканчивающегося в .ini. Если Вы делаете Вы могли бы использовать

for x in .*/*.ini; do 
    if [ -f "$x" ]; then 
        md5sum "$x"
    fi
done

который однако потерял бы преимущество только необходимости в одном md5sum вызове.

Править

Для общего и надежного метода объединения в цепочку find, можно сделать что-то как

find <paths> <args> -print0 | xargs -0 -I{.} find {.} <args for second find> [etc.]
8
27.01.2020, 19:52
  • 1
    , я получаю ошибку с -f (f?), и затем другая ошибка с -execdir.. Когда я заменяю-execdir - должностное лицо, и/или также заменяющий md5sum с печатью, я ничего не получаю.. –  Peter.O 05.08.2011, 08:54
  • 2
    Спасибо, для альтернативы..., но я больше после способа сделать это использование find ... Это не так, что я просто хочу этот разрешенный пример, я ищу понимание способов находки-fu..., возможно, там больше пуха, чем fu в находке.. (Я не знаю, потому что я фактически никогда не использовал его), и это - первая ситуация, я действительно хотел использовать его (для файлов изображений на самом деле) и - исполнительная функция, о которой я услышал так много, кажется, не так всесилен, как его представитель (?) ссылается на... (+1 для альтернатив, хотя).. но Ваш find пример просто не работает (все еще) –  Peter.O 05.08.2011, 09:31
  • 3
    , я получаю эту ошибку для find команда:... find: The relative path ~ / мусорное ведро' включен в переменную окружения PATH, которая небезопасна в сочетании с-execdir действием находки. Удалите ту запись из $PATH'.... Таким образом, возможно, это будет работать, но я должен сказать, что пытался избавиться от того ~ / мусорное ведро некоторое время теперь... Я "ll должен взять в качестве более серьезного взгляда на него... Я не знаю, где я" ve устанавливаю его... любые идеи, где Это может скрываться; ~/bin в моем –  Peter.O 05.08.2011, 09:36
  • 4
    ПУТИ я думаю питание find лучше всего ценится в ситуациях, которые не могут быть сделаны полностью с шариками, но поскольку те виды ситуаций редки, я не обычно должен находить много. –  jw013 05.08.2011, 09:40
  • 5
    Хорошо.. это - интересный момент и положительная сторона (об использовании шариков)... –  Peter.O 05.08.2011, 09:43

Ваша исходная проблема не требует, чтобы вызов нашел рекурсивно, но я предполагаю, что это не было точкой.

Я полагаю, что не возможно звонить, находят рекурсивно в способе, которым Вы хотите.

Следующее не звонит, находят рекурсивно (или вложение, независимо от того, что это называют) также но Вы не можете только взять набор результатов первой находки и подать ее к второй? Это - то, как я инстинктивно сделал бы:

find `find ./ -maxdepth 1 -type d -name '.*'` \
    -maxdepth 1 -type f -name '*.ini' -exec md5sum {} \;

Вы могли также использовать xargs для выполнения второй находки.

Обновление:

Я хотел добавить, что, потому что большинство утилит UNIX берет несколько аргументов имени файла вместо одного, можно обычно избегать -exec в целом:

md5sum `find \`find ./ -maxdepth 1 -type d -name '.*'\` -maxdepth 1 -type f -name '*.ini'`

Когда вложенные обратные галочки Вы просто добавляете обратные косые черты \ перед внутренними.

Если мы воображаем это md5sum берет только один аргумент имени файла, мы можем всегда переносить его в a for цикл:

for f in `find \`find ./ -maxdepth 1 -type d -name '.*'\` -maxdepth 1 -type f -name '*.ini'`
do
    md5sum $f
done

Обратите внимание, что это становится более трудным если файл/имена каталогов, запускающийся с - или содержание пространства включено. Утилиты UNIX не играют приятно с ними. В этом случае добавление ./, -- или кавычки необходимы.

Очевидно, исходным примером не является хороший, потому что мы могли просто сделать:

md5sum .*/*.ini
2
27.01.2020, 19:52
  • 1
    Вы дали хороший обзор ситуации, но все показанные find методы получают ошибку, когда файл/каталог содержит пробелы... md5sum .*/*.ini хорошо работает... Я начинаю получать общее ощущение, которое * Warren Young* комментирует о вещах, становящихся 'сложным' для find происходит вначале в игре :), но я принимаю find добивается признания, когда тесты условия более сложны, но до вложения - идет должностное лицо, я вполне прилично отбросил идею, поскольку кажется, что существуют более простые способы сделать это.. (но жемчуг не "прост" мне (еще)... –  Peter.O 05.08.2011, 13:13

По крайней мере, мне удалось вложить 2, находят команды:

find ~ -maxdepth 1 -type d -name '.*' -execdir \
    find {} -maxdepth 1 -type f -name '*.ini' \;

Но я не решил для вызова другого - должностного лица (dir) - вызов оттуда.

0
27.01.2020, 19:52
  • 1
    Да, это - моя проблема точно каталоги :) –  Peter.O 05.08.2011, 13:22
  • 2
    Да, но не вложение 3 не то же как не вложение 2. :) –  user unknown 11.08.2011, 23:07

Теги

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