Я хочу найти *.mxf
и *.MOV
файлы с Одним Каталогом, которые являются более старыми, чем 14 days
но я хочу исключить один подкаталог, названный как Secure
в рамках этого поиска. вот моя команда, которая я использую его, но я также вижу файлы от Secure
каталог, который, как предполагается, не является здесь.
find /main/videos/internal/files/ ! -path "/main/videos/internal/file/Secure/*" \
-type f -name '*.mxf' -o -name '*.MOV' -mtime +14
парни помогают мне узнать свою ошибку.
Проблема состоит в том, что ! -path "/main/videos/internal/file/Secure/*"
избежит подкаталогов под /main/videos/internal/file/Secure/
только, не любой другой Secure
каталог в иерархии, включенной здесь. Например, /main/videos/internal/file/foobar/Secure/spam.MOV
все еще обнаружится в выводе.
Поэтому, если Вы хотите исключить весь Secure
каталоги (и подкаталоги), можно использовать -prune
действие find
здесь:
find /main/videos/internal/files/ -type d -name 'Secure' -prune -o \
-type f \( -name '*.mxf' -o -name '*.MOV' \) -mtime +14 -print
Для соответствия файлам можно использовать -regex
:
find /main/videos/internal/files/ -type d -name 'Secure' -prune -o \
-type f -regex '.*\.\(mxf\|MOV\) -mtime +14 -print