Начнем с того, что я прочитал соответствующие темы, но ни один из них не объяснил мои сомнения.
У меня есть следующая команда, которая отлично работает:
find ./source/ -maxdepth 1 -type f ! -name "secretinfo.md" -exec cp {} ./build/ \;
Однако, используя;
означает, что я передаю каждый найденный файл команде cp по одному.Я думал, что смогу передать их все сразу, так как команда cp позволяет это.Основываясь на другом ответе, который я нашел:
Команда -exec должна заканчиваться символом a;(поэтому вам обычно нужно вводить \; или ';', чтобы избежать интерпретации оболочкой) или +.Разница в том, что с; команда вызывается один раз для каждого файла, с + она вызывается как можно меньше раз (обычно один раз, но максимальная длина для командной строки, поэтому она может быть разделена) свсе имена файлов
Так как я это сделал:
find ./source/ -maxdepth 1 -type f ! -name "secretinfo.md" -exec cp {} ./build/ +
И здесь я получаю сообщение об ошибке:
find: missing argument to `-exec'
Можете ли вы объяснить мне, почемуэто не разрешено?