名前でファイルを再帰的に見つけて削除し、シンボリックリンクを作成します。

名前でファイルを再帰的に見つけて削除し、シンボリックリンクを作成します。

一方:

フォルダ構造は次のとおりです(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コマンドで実行できますか?

ありがとうございます!

ベストアンサー1

これを行うことができます:

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

file.txtこのコマンドは、以下の名前のすべてのファイルを見つけて/basedir各ファイルで実行され、()をへのシンボリックリンク()でln置き換えます。-f-s/mydir/file.txt

おすすめ記事