LINUX.ORG.RU
решено ФорумAdmin

find + copy

 , ,


0

1

Всем привет, подскажите чукче как рекурсивно после find всё скопировать в опеределённый каталог.
Грубо говоря нужно что-то подобное
/usr/bin/find /etc/letsencrypt/archive/ -type f -mtime -30 -exec /usr/bin/scp -r "{}" /etc/letsencrypt/export \;
но в {} у меня вываливается только отфильтрованное из первого попавшегося каталога, все остальные игнорятся и тупо копируются в export.



Последнее исправление: gidrotormoz (всего исправлений: 2)

  1. Зачем здесь scp? Ты копируешь с локальной машины на локальную машину или на примонтированную шару. Нужен cp.

  2. По вопросу ничего не понятно. Приводи пример, что не так.

anonymous
()
Ответ на: комментарий от anonymous
  1. я scp указал так как вырезал кусок скрипта из ssh root@ip, ну потом будет всё выполняться на удаленной машине, пока локально тестирую.
  2. Короче в точке А, у меня несколько каталогов, где лежат файлы разной даты, мне нужно с помощью команды find отфильтровать только те что были изменены не позднее 30 дней назад, и скопировать в каталог export. С помощью моей команды выход вот что. https://prnt.sc/vlak63 а вот чистый вывод find
    https://prnt.sc/vlalmg
gidrotormoz
() автор топика
Ответ на: комментарий от gidrotormoz

У тебя из-за совпадения имён старые файлы просто затираются новыми.

aureliano15 ★★
()
Ответ на: комментарий от gidrotormoz

Ну так и соображай дальше. Файнд тебе указывает на ФАЙЛЫ, а не на ДИРЕКТОРИИ. Если файнд нашел файлы с одинаковым названием, то в итоговой директории, куда ты копируешь, может быть только 1 файл с таким (одинаковым) названием. Поэтому если нужно сохранить ВСЕ файлы, даже с одинаковым названием, нужно или переименовать их в источнике, или копировать ДИРЕКТОРИЮ с измененными файлами, а это уже другой алгоритм действий.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.