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

Данный:

Структура папки 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?

Спасибо!

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 .

  • Есть ли недостатки в использовании mount -bind в качестве замены символических ссылок?
  • найти использование с -L
  • Как избежать многих уровней символических ссылок с помощью этой находки?
  • список файлов с помощью символической ссылки
  • Что случилось с файлом, когда я ввел «mv file.txt ../»?
  • Игнорировать каталоги под определенным корнем, следуя символическим ссылкам с помощью find
  • Как я могу эффективно разыменовать все символические ссылки в файлах `find` * output * filenames?
  • Создание дерева символических ссылок в существующих каталогах
  • Linux и Unix - лучшая ОС в мире.