Почему следующее не копирует файлы в папку назначения?
# find /home/shantanu/processed/ -name '*2011*.xml' -exec cp /home/shantanu/tosend {} \;
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
\;
?find -iname '*.mp3' -mtime -1 -exec cp {} /home/my_path/ \;
что-то не так с этой командой? это не работаетя столкнулся с проблемой примерно так ...
Фактически, вы можете обрабатывать
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
команды, которую следует экранировать перед нажатием кнопки ввода. В противном случае вы получите сообщение об ошибке примерно такого видаВ вашем случае синтаксис команды копирования неверен , чтобы скопировать файл поиска в
/home/shantanu/tosend
. Следующая команда будет работать:источник
find
/xargs
,find <Path> <Conditions> -print0 | xargs -0 -r cp -t <copy file path>
. Пример:find -mtime -1 -type f -print0 | xargs -r0 cp -t inner/
Вам нужно использовать
cp -t /home/shantanu/tosend
, чтобы сообщить ему, что аргумент является целевым каталогом, а не источником. Затем вы можете изменить его на-exec ... +
,cp
чтобы скопировать как можно больше файлов одновременно.источник
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp --target-directory=/home/shantanu/tosend {} \;
источник
Причина этой ошибки заключается в том, что вы пытаетесь скопировать папку, для которой требуется параметр -r, также для cp Спасибо
источник