日付で整理された(名前付きの)他のディレクトリでいっぱいの特定のディレクトリがあります。参照しやすいcurrentように、最新のものを指すというシンボリックリンクがあります。
新しい日付ディレクトリを作成するスクリプトで、currentシンボリックリンクを作成または修正して、作成された最新のディレクトリを指すようにします。
適切なコマンドは、たとえば、
ln -fs 2017-03-01 current
場合はcurrentシンボリックリンクがまだ存在していない、この作品。
ただし、currentシンボリックリンクがすでに作成されている場合(および、たとえば、ディレクトリを指している場合2017-02-28)、これは機能しません。
代わりにシンボリックリンクを除去するcurrentと、新しいシンボリックリンク作成currentた点にし2017-03-01、その結果、代わりに壊れたシンボリックリンクであろうと呼ば 2017-03-01を指し、それ自体休止内部ディレクトリ2017-02-28(シンボリックリンクがここでcurrent指摘し、まだ点)。
これは私を困惑させたので、の仕様を読みましたln。これは予想される動作です。
あらすじ
ln [-fs] [-L|-P] source_file target_file ln [-fs] [-L|-P] source_file... target_dir説明
...
2番目の構文形式は、最後のオペランドが既存のディレクトリを指定するときに想定されます。
する全く方法がないこと、そして、思わシンボリックリンクを再指定現在のディレクトリを指していることを新たなターゲットに新しいターゲットは名前の持つ別のシンボリックリンクの名前からは。だからln -fs私が思ったようには動かない。
必要があります I rm current、またはそこには、私が見落としてきた別のアプローチですか?