Я хотел бы создать скрипт automator, который будет запрашивать указанную папку, и при выборе я хотел бы, чтобы он выполнял следующие действия и выполнял x задач

  • если файлы имеют формат .mkv и не содержат "sample" в имени файла и имеют размер <2 ГБ, копируют в папку x
  • если файлы имеют формат .mkv и не содержат "sample" в имени файла и имеют размер> 2 ГБ, копируют в местоположение z. Для любых файлов, которые не соответствуют этим требованиям, файл должен быть удален вместе с выбранной родительской папкой.

1 ответ1

1

Вы можете просто запустить такой скрипт в редакторе кода, как TextMate:

d=~/Folder
find "$d" -name '*.mkv' -a ! -name '*sample*' -a -size -2G -exec cp {} ~/x \;
find "$d" -name '*.mkv' -a ! -name '*sample*' -a -size +2G -exec cp {} ~/z \;
rm -r "$d"
  • \; принимает один аргумент за раз (\+ будет принимать несколько аргументов), но в этом случае копирование файлов занимает намного больше времени, чем запуск новых процессов cp
  • 2G равен 2 ГиБ (2 * 2 ^ 30 байт)
  • + 2G и -2G являются эксклюзивными, но, вероятно, не будет файлов, которые точно 2 Гиб
  • {} не нужно указывать
  • cp не сохраняет время модификации или создания, если вы не добавите -p (или -a, что подразумевает -p)
  • Вы также можете использовать корзину вместо rm -r

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .