Как создать копию файла в нескольких каталогах?

У меня есть структура папок

conf/ widget1/ env1.cfg env2.cfg widget2/ env1.cfg env2.cfg widget3/ env1.cfg env2.cfg widget4/ env1.cfg env2.cfg ... 

Я хочу найти все файлы с именем env2.cfg и создать их копию в каталоге с именем env3.cfg .

Я пробовал:

 find -name env2.cfg -exec cp '{}' "env3.cfg" ";" 

но это только что создало env3.cfg в env3.cfg conf/ .

Есть предположения?

Для уточнения я делаю это на Mac OSX, но в идеале одна и та же команда должна работать на CentOS, если это возможно.

3 Solutions collect form web for “Как создать копию файла в нескольких каталогах?”

Пытаться

find . -name env2.cfg -execdir cp {} env3.cfg \;

Заменив exec на execdir . Это будет означать, что ваше действие ( cp ) будет происходить внутри папки, где был найден файл ( env2.cfg ).

Ваш пример копирует все файлы env2.cfg в текущий рабочий каталог, который является «.». Вам нужно указать файлу новое имя, включая его каталог. Это работало для меня:

 for file in $(find . -name env2.cfg); do backup=$(echo $file | sed 's/env2.cfg/env3.cfg/'); cp $file $backup; done 

edit: Или еще более элегантный способ, поэтому вам не нужно беспокоиться о нескольких командах:

 for file in $(find . -name env2.cfg); do cp $file ${file/env2/env3}; done 

Поскольку это статическая структура, вы можете напрямую обращаться к именам файлов и разрешать оболочке копировать их:

 for f in conf/widget*/env2.cfg do cp "${f}" "${f/env2/env3}" done 
  • fork () и exec () путаница
  • Каков рекомендуемый способ запуска службы в качестве пользователя без полномочий root?
  • Как я могу заставить конкретный процесс выполнять данный исполняемый файл с помощью ptrace ()?
  • Какова цель разрешения на выполнение?
  • Можно ли вызвать вызов exec, который «возвращает»?
  • команда solaris + xargs для солярия
  • Различия между sed #,%, / и |
  • GDB вечно вешается на Solaris
  • exec с переменной filedescriptor
  • Можно ли использовать трубку вместо exec in - find / -name ".txt" -exec cp {} / junk \;
  • Возможно ли повторное использование оболочки?
  • Interesting Posts

    удалить содержимое с начала на первую пустую строку

    проанализировать действительно простую грамматику разметки со сценарием оболочки

    Как сделать traceroute след за 30 прыжками?

    Усекать при необходимости при перемещении файла в файловую систему с более коротким NAME_MAX

    Могу ли я установить любое приложение Debian или Ubuntu на Kali Linux?

    Как просмотреть вывод текущего процесса в другом сеансе bash?

    Скрипт для эмуляции Windows + клавиша

    Как запустить команду без прав root

    любая команда, которая может форматировать html или xml из оболочки?

    Установите 32-битные библиотечные пакеты на 64-разрядную версию 6.2 во время установки os

    Будущее OpenSolaris

    Откройте список URL-адресов на вкладке ACTIVE в Opera.

    Каковы последствия наличия большого количества файлов в каталоге в файловой системе ext4?

    Что означает «запасное» число mdadm?

    Что контролирует домашний каталог в таких приложениях, как Geeqie и Thunar?

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