я зіткнувся з такою проблемою ...
Насправді двома способами можна обробити find
командний вихід у copy
команді
Якщо find
вихідний результат команди не містить простору, тобто якщо ім'я файлу не містить місця в ньому, ви можете використовувати нижче згадану команду:
Синтаксис: find <Path> <Conditions> | xargs cp -t <copy file path>
Приклад: find -mtime -1 -type f | xargs cp -t inner/
Але більшість часу наші виробничі файли даних можуть містити в ньому простір. Тому більшість часу нижче згаданої команди є більш безпечним:
Синтаксис: find <path> <condition> -exec cp '{}' <copy path> \;
Приклад find -mtime -1 -type f -exec cp '{}' inner/ \;
У другому прикладі остання частина, тобто крапка з двокрапкою, також розглядається як частина find
команди, яку слід вийти, перш ніж натиснути кнопку введення. Інакше ви отримаєте помилку приблизно подібну
find: missing argument to `-exec'
У вашому випадку синтаксис команд копіювання неправильний для копіювання знаходження файлу в /home/shantanu/tosend
. Наступна команда буде працювати:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
\;
?