Saya memiliki direktori tertentu yang penuh dengan direktori lain yang dikelola (dinamai) berdasarkan tanggal. Untuk kemudahan referensi, saya memiliki symlink yang disebut current
menunjuk ke yang terbaru.
Dalam skrip yang membuat direktori tanggal baru, saya ingin membuat atau memperbaiki current
symlink untuk menunjuk ke direktori terbaru yang pernah dibuat.
Saya pikir perintah yang tepat adalah, misalnya,
ln -fs 2017-03-01 current
Jika current
symlink belum ada, ini berfungsi.
Namun, jika current
symlink telah dibuat (dan menunjuk, katakanlah, di direktori 2017-02-28
), ini tidak berfungsi:
Alih-alih menghapus symlink current
dan membuat symlink baru current
yang mengarah ke 2017-03-01
, hasilnya malah akan menjadi symlink rusak yang disebut 2017-03-01
menunjuk ke dirinya sendiri, terletak di dalam direktori 2017-02-28
(yang merupakan tempat symlink current
menunjuk dan masih menunjuk).
Ini membingungkan saya, jadi saya membaca spesifikasi untukln
. Ternyata inilah perilaku yang diharapkan:
RINGKASAN
ln [-fs] [-L|-P] source_file target_file ln [-fs] [-L|-P] source_file... target_dir
DESKRIPSI
...
Bentuk sinopsis kedua harus diasumsikan ketika operan terakhir menamai direktori yang ada.
Jadi, tampaknya tidak ada cara apa pun untuk mengulangi symlink yang saat ini menunjuk ke direktori ke target baru, di mana target baru memiliki nama yang berbeda dari nama symlink. Jadi ln -fs
tidak berfungsi seperti yang saya kira.
Haruskah saya rm current
, atau ada pendekatan lain yang saya abaikan?