Как я могу исключить. и.. при перечислении только скрытых элементов?

Два способа (помимо с использованием-path):

  1. Найдите каталог, затем определите файл:

    find / -type d -name 'ABC_MPSC' -exec test -f {}/ABC.jpg \; -print
    

    Это зависит от реализации findдля расширения {}до текущего имени пути к найденному каталогу, даже несмотря на то, что он объединен с/ABC.jpg(это не требуется для этого ). Его также можно записать как

    find / -type d -name 'ABC_MPSC' \
        -exec sh -c 'test -f "$1"/ABC.jpg' sh {} \; -print
    
  2. Найдите файл, затем проверьте имя его родительского каталога:

    find / -type f -name 'ABC.jpg' -exec sh -c '
        case $(dirname "$1") in
            */ABC_MPSC) exit 0 ;;
            *) exit 1
        esac' sh {} \; -print
    

Обе эти альтернативы будут медленнее, чем использование -path, как показывает Джефф. Тем не менее я оставляю их здесь в качестве примеров, так как они могут быть адаптированы для других целей.

1
28.05.2020, 14:04
0 ответов

Теги

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