Как искать файл и перемещаться в несколько каталогов назначения?

Как искать один файл и перемещаться в несколько папок с помощью команды find?

Я попытался выполнить команду, но не повезло.

  • Как перебирать файлы и удалять те, кто старше x дней, но НЕ используется
  • Найти входящие символические ссылки
  • Как исключить каталоги NFS с помощью find?
  • Разный вывод `find | xargs ls` для той же команды в разных версиях Ubuntu
  • Команда «Поиск» не может скопировать несколько файлов
  • Почему find не принимает '-exec cp {} dir +'?
  • find /export/logs/tmp/logs/* -type f -name f_apec_`echo $(date +"%Y-%m-%d")`_1 -exec mv -v {} /export/logs/nucleus1/ /export/logs/nucleus2/ \; 

  • параметр двойного кавычки (представляющий имя файла) не помогает, если в нем содержатся пробелы
  • Найдите файл хранилища ключей, содержащий конкретный SHA-1
  • Как искать строку только в текстовых файлах? (рекурсивно)
  • Перемещение сохраняет права собственности на исходные файлы, не позволяя делать записи
  • find -exec не делает то, что находит вывод, предлагает
  • найти команду, перечислить вывод и разрешить выбор?
  • 2 Solutions collect form web for “Как искать файл и перемещаться в несколько каталогов назначения?”

    Вы не можете переместить файл в несколько каталогов, но вы можете скопировать его во все пункты назначения и до последнего хода, используя свою собственную команду.

     find /export/logs/tmp/logs/ -type f -name "f_apec_$(date +"%Y-%m-%d")_1" -exec echo cp -v '{}' /export/logs/nucleus1/ \; -exec echo mv -v '{}' /export/logs/nucleus2/ \; 

    Здесь вы также можете скопировать файл в несколько каталогов с помощью xargs :

     echo dir1/ dir2/ dir3/ | xargs -n1 cp /path/to/Onefile 

    Сначала вы используете mv который перемещает файл, а не копирует его. Вам нужно использовать cp , но cp может копировать несколько файлов в один пункт назначения.

    Вам нужно будет выполнить cp несколько раз. Одним из решений, которое вы можете использовать, является создание простого сценария, который копирует аргумент нескольким адресатам. Затем в вашей команде find .. -exec {} запустите скрипт с файлом в качестве аргумента и скопируйте его несколько раз в свой скрипт.

    Linux и Unix - лучшая ОС в мире.