一方:
フォルダ構造は次のとおりです(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