я столкнулся с проблемой что-то вроде этого ...
На самом деле вы можете обработать вывод команды find
в copy
command
двумя способами.
Если в выводе 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 \;