Добавление -prune и -name к команде find в AIX и Linux

"${blah}"и "$blah"представляют собой переносимый синтаксис оболочки: они работают во всех оболочках, совместимых с POSIX, а также в традиционных оболочках Bourne. . POSIX также требует других функций расширения переменных:

  • Работа со строками с помощью ${VAR#PREFIX}, ${VAR##PREFIX}, ${VAR%SUFFIX }и ${VAR%%SUFFIX}.
  • Условная обработка неустановленных переменных с помощью ${VAR-DEFAULT}, ${VAR=DEFAULT}, ${VAR+FALLBACK}и ] ${VAR?MESSAGE}, а также неустановленные или пустые варианты с :-, :=, :+и :?.
  • Переменная длина с ${#VAR}.

Во всех случаях помните, что результат $…подвергается расщеплению пробелами (точнее, разбиению на символы $IFS) и расширению подстановочных знаков (подстановке), если только он не находится в двойном кавычки (или несколько других контекстов, которые не позволяют использовать несколько слов).

Вы можете посмотреть, что существует в POSIX, прочитав спецификацию. Современные версии POSIX идентичны Базовым спецификациям Open Group(без дополнительных компонентов). Старые версии являются подмножеством Single Unix v2.

Unix-подобные системы без оболочки POSIX в настоящее время крайне редки. /bin/shявляется оболочкой Bourne, отличной от POSIX, в нескольких системах, особенно в Solaris, но доступна оболочка POSIX ( /usr/xpg4/bin/shв Solaris и у вас должно быть /usr/xpg4/binперед /usr/binв вашем PATH). Если вам нужна совместимость с оболочками Bourne, проверьте man-страницы интересующих вас систем, так как существует множество версий sh с немного отличающимися наборами функций. Свен Масчек поддерживает страницу с большим количеством информации.

0
16.09.2017, 01:50
1 ответ

Без «действия» (, такого как -print), findбудет распечатывать каждый посещаемый файл. Именно из-за этого find -L. ( -name dest ) -prune -o -name "*.out"по-прежнему отображаются удаляемые файлы. findдолжен просмотреть файл, прежде чем он сможет оценить предоставленные вами условия.

Добавление действия -printв конец команды findдолжно помочь.

find -L. -name dest -prune -o -name "*.out" -print
2
28.01.2020, 02:33

Теги

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