Как объединить вывод нескольких команд `find`?

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + > checklist.chk

Как объединить эти две команды?

Либо путем объединения обоих поисковых терминов в одной команде, либо для того, чтобы каждая команда добавляла свой вывод в тот же файл.

Надеюсь, ясно, что я пытаюсь сделать.

1
задан 17 November 2015 в 11:37

2 ответа

Есть много способов сделать это:

Использование Or -o:

find . -type f \( -name '*.avi' -o -name '*.mp4' \) -exec md5sum {} + > checklist.chk

Использование Regex:

find . -type f  -regextype posix-extended -regex '.*\.(avi|mp4)$' -exec md5sum {} + > checklist.chk

Оба будут писать вывод в файл checklist.chk.

8
ответ дан 23 May 2018 в 15:43
  • 1
    Спасибо .. Я знал об операторе -o, но не знал синтаксиса. Также не было известно о регулярном выражении, которое можно использовать так. Благодаря :) – akya 17 November 2015 в 11:40

С флагом -o (который находится под OPERATORS на странице man find]

find . -type f \( -name "*.avi" -o -name "*.mp4" \) -exec md5sum {} + > checklist.chk
4
ответ дан 23 May 2018 в 15:43

Другие вопросы по тегам:

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