Поиск файла по имени рекурсивно, удаление его и создание символической ссылки

Данный:

Структура папки as ( file.txt – это текстовые файлы в каждом каталоге, а не символические ссылки):

 /basedir/A/file.txt /basedir/B/file.txt /basedir/C/file.txt 

Тот же file.txt который находится в /mydir :

 /mydir/file.txt 

Мне нужна команда, которая будет запускаться с /basedir :

  • Находит рекурсивно все /file.txt.A/ , ./B и ./C )
  • Удаляет найденные файлы file.txt
  • Создает символическую ссылку на /mydir/file.txt

Может ли это быть сделано в одной команде bash?

Спасибо!

  • Создание дерева символических ссылок в существующих каталогах
  • Как найти все файлы .tex в каталогах в Recurse Grep?
  • Найти все символические ссылки в каталоге и изменить цель на другой каталог
  • Как заставить find следовать большинству, но не всем, символическим ссылкам?
  • перечислить все символические ссылки на действительные каталоги только с помощью find
  • Как удалить сломанные символические ссылки за один раз?
  • Есть ли недостатки в использовании mount -bind в качестве замены символических ссылок?
  • ln -s $ SOURCE / * except - с помощью find?
  • One Solution collect form web for “Поиск файла по имени рекурсивно, удаление его и создание символической ссылки”

    Это сделает это:

     find /basedir -type f -name file.txt -exec ln -sf /mydir/file.txt '{}' \; 

    Он находит все файлы с именем file.txt в /basedir и запускает ln на каждом, чтобы заменить его ( -f ) на символическую ссылку ( -s ) на /mydir/file.txt .

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