@Lekensteyn Уже было установлено, что это было до вашего комментария. Я думал, что признал Shahadat до вашего поста, это было просто "хорошо". Нет, я не запускал его вручную, я делал это изо всех сил и редко использовал эту форму поиска регулярных выражений с помощью find. Это была вещь типа «может помочь».

у точно знать, что{} \; а также{} \+ а также| xargs ... делать. Пожалуйста, уточните это с объяснениями.

Ниже 3 команды выполняются и выдают одинаковый результат, но первая команда занимает немного времени, и формат также немного отличается.

find . -type f -exec file {} \;
find . -type f -exec file {} \+
find . -type f | xargs file

Это потому, что 1-й управляетfile Команда для каждого файла, поступающего изfind команда. Итак, в основном это выглядит так:

file file1.txt
file file2.txt

Но последние 2 найти с-exec Команды запускают команду file один раз для всех файлов, как показано ниже:

file file1.txt file2.txt

Затем я запускаю следующие команды, первая из которых работает без проблем, а вторая выдает сообщение об ошибке.

find . -type f -iname '*.cpp' -exec mv {} ./test/ \;
find . -type f -iname '*.cpp' -exec mv {} ./test/ \+ #gives error:find: missing argument to `-exec'

Для команды с{} \+, это дает мне сообщение об ошибке

find: missing argument to `-exec'

почему это? Может кто-нибудь объяснить, пожалуйста, что я делаю не так?

Ответы на вопрос(4)

Ваш ответ на вопрос