日付で整理された(名前付きの)他のディレクトリでいっぱいの特定のディレクトリがあります。参照しやすい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
、またはそこには、私が見落としてきた別のアプローチですか?