回答:
このコマンドは機能するはずです:
find -type l -exec bash -c 'ln -f "$(readlink -m "$0")" "$0"' {} \;
使い方:
find -type l 現在のディレクトリ内のすべてのリンクを検索します。
-exec bash -c '...' {} \;bashを呼び出して実行し...ます。
これ{}は、現在処理中のリンクの名前を引数として渡します。bashはとしてアクセスできます$0。
readlink -m "$0" シンボリックリンクのリンク先の絶対パスを返します。
ln -f "$(readlink -m "$0")" "$0"ターゲットへのハードリンクで-fシンボリックリンク$0を上書きします()。
何らかの理由でリンクを変換できない場合、リンクはそのまま残り、lnはエラーメッセージを出力します。
bashとln?
-eスイッチはそれを修正します。
brew install coreutilsとfind * -type l -exec bash -c 'ln -f "$(greadlink -m "$0")" "$0"' {} \;。
cp -aH)も参照してください。[1]:unix.stackexchange.com/questions/94185/…–