OSX: рекурсивно сгенерировал контрольную сумму MD5 в текстовом файле, содержащем файлы с соответствующей контрольной суммой

Вам нужна оболочка, чтобы интерпретировать эти конструкции if / then / else или запускать эти конвейеры (хотя на самом деле они вам не нужны здесь):

find . -type f -exec sh -c '
  for file do
    case $(file -b "$file") in
      (data) printf "%s is CORRUPT\n" "$file";;
         (*) printf "%s is DATA\n" "$file";;
    esac
  done' sh {} +

(как и в вашем вопросе, он печатает "CORRUPT", когда файл говорит data . Я не уверен, что вы это имели в виду).

Что бы вы ни делали, не включайте {} в код оболочки, как предлагали другие! Это было бы очень опасно (и, кстати, непереносимо), поскольку, например, файл с именем $ (rm -rf "$ HOME") заставит вас удалить весь домашний каталог.

5
03.10.2017, 11:22
0 ответов

Теги

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