web-dev-qa-db-ja.com

シンボリックリンクを復元する最も簡単な方法はテキストファイルに変わりましたか?

私はそれらの中に多くの象徴的なリンクを持つフォルダを持っていました。残念ながら、さまざまなファイルシステムを中心にコピーした後、それらはリンクターゲットを内容としてプレーンテキストファイルに変えました。あれは:

$ ll link
... link -> /path/to/target
 _

$ cat link
/path/to/target
 _

このリンクを復元する最も簡単な方法は何ですか?おそらく1つのライナーまたはシェルスクリプト。

私がこのような何百ものリンクがあるとします、それぞれの修正を手動で実行せずにそれらすべてを復元する方法はありますか?

1
congusbongus

このコマンドを使用してください。

ls *txt | xargs -I R1 sh -c "cat R1 | xargs -I R2 ln -sf R2 R1"
 _

交換 ls *txtシンボリックリンクになる必要があるテキストファイルのリストを出力するもの。例えば、 find . -name "*txt"現在のディレクトリ内または現在のディレクトリの下にあるすべての* TXTファイルを一覧表示します。

1