@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'
почему это? Может кто-нибудь объяснить, пожалуйста, что я делаю не так?