Ganti tautan simbolik yang tertaut ke target direktori


17

Saya ingin memperbarui server kucing jantan dari 7.0.19 ke 7.0.20.

Saya sudah pernah melakukannya ln -s apache-tomcat-7.0.19 tomcat7, jadi sekarang saya harus menautkan tomcat7 ke target baru menggunakan perintah berikut ln -s --force apache-tomcat-7.0.21 tomcat7, tetapi tidak berfungsi seperti yang saya harapkan: itu membuat tautan simbolik tomcat7/apache-tomcat-7.0.21alih-alih mengganti tomcat7tautan simbolik yang ada dengan target baru.

Contoh

# mkdir v1 v2
# ln -s v1 v
# ln -s v2 v
# ll v*
lrwxrwxrwx. 1 root root    2 Sep  5 16:02 v -> v1

v1:
total 0
lrwxrwxrwx. 1 root root 2 Sep  5 16:02 v2 -> v2

v2:
total 0

Saya memeriksa manualln , saya pikir ln -s --force apache-tomcat-7.0.21 tomcat7gunakan formulir ke-3 daripada formulir ke-1 untuk menjelaskan parameter. Itu sangat ambigu antara formulir 1 dan 3. Jadi bagaimana cara mengganti tautan simbolis dalam kasus ini?

Jawaban:


16

Anda menginginkan -Topsi:

$ mkdir v1
$ ln -s v1 foo
$ ls -FlA | grep foo
lrwxrwxrwx 1 phil phil     2 2011-09-05 01:58 foo -> v1/
$ mkdir v2
$ ln -s -T -f v2 foo
$ ls -FlA | grep foo
lrwxrwxrwx 1 phil phil     2 2011-09-05 01:59 foo -> v2/

Terima kasih, itulah yang saya butuhkan. Sayang sekali, saya melihat opsi opsional ini membantu, tetapi saya tidak tahu apa sebenarnya yang dilakukannya.
LiuYan 刘 研

16

Saat mengganti tautan simbolik ke direktori, kita harus menggunakan -nopsi.

Contoh: ln -sfn /path/to/directory /target/directory


1
Ini harus menjadi jawaban yang diterima. Memecahkan pertanyaan dan one-liner / compact.
sampai

1
Jawaban yang diterima juga memecahkan pertanyaan dan hanya satu kalimat ... kecuali saya salah, itu bisa sama kompaknya. Saya tidak berpikir itu perlu untuk memiliki -ruang dan terpisah sebelum setiap bendera seperti yang mereka miliki.
ArtOfWarfare

3

Kenapa tidak adil?

rm tomcat7
ln -s apache-tomcat-7.0.21 tomcat7

?

Ini tidak akan menyentuh direktori lama apache-tomcat-7.0.19 tetapi cukup hapus tautan yang lama. Kemudian ln dapat membuat yang baru.


Terima kasih! Saya melakukan ini saat ini dalam skrip saya, tetapi saya pikir ini tidak seperti cp -f/ mv -fyang menggunakan perintah tunggal untuk melakukan operasi menimpa, jadi saya mencari solusi perintah tunggal .
LiuYan 刘 研
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.