Thay thế liên kết tượng trưng liên kết đến mục tiêu thư mục


17

Tôi muốn nâng cấp máy chủ tomcat từ 7.0.19 lên 7.0.20.

Tôi đã có ln -s apache-tomcat-7.0.19 tomcat7trước đây, vì vậy bây giờ tôi cần liên kết tomcat7 với mục tiêu mới bằng lệnh sau ln -s --force apache-tomcat-7.0.21 tomcat7, nhưng nó không hoạt động như tôi mong đợi: nó tạo ra một liên kết tượng trưng tomcat7/apache-tomcat-7.0.21thay vì thay thế tomcat7liên kết tượng trưng hiện tại bằng mục tiêu mới.

Thí dụ

# 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

Tôi đã kiểm tra hướng dẫn sử dụngln , tôi nghĩ ln -s --force apache-tomcat-7.0.21 tomcat7sử dụng mẫu thứ 3 thay vì mẫu thứ 1 để giải thích các thông số. Điều đó rất mơ hồ giữa mẫu thứ 1 và thứ 3. Vậy làm thế nào để thay thế liên kết tượng trưng trong trường hợp này?

Câu trả lời:


16

Bạn muốn -Ttùy chọn:

$ 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/

Cảm ơn, đó chính xác là những gì tôi cần. Thật là xấu hổ, tôi thấy tùy chọn này trong trợ giúp, nhưng tôi không biết chính xác nó làm gì.
LiuYan 刘

16

Trong khi thay thế các liên kết tượng trưng đến các thư mục, chúng ta nên sử dụng -ntùy chọn.

Thí dụ: ln -sfn /path/to/directory /target/directory


1
Đây phải là câu trả lời được chấp nhận. Giải quyết câu hỏi và một lót / nhỏ gọn.
cho đến

1
Câu trả lời được chấp nhận cũng giải quyết được câu hỏi và là một câu hỏi ... trừ khi tôi nhầm, nó có thể nhỏ gọn như nhau. Tôi không nghĩ cần có một -khoảng trống và không gian riêng biệt trước mỗi lá cờ như họ có.
ArtOfWarfare

3

Tại sao không chỉ

rm tomcat7
ln -s apache-tomcat-7.0.21 tomcat7

?

Điều này sẽ không chạm vào thư mục cũ apache-tomcat-7.0.19 mà chỉ xóa liên kết cũ. Sau đó ln có thể tạo cái mới.


Cảm ơn! Tôi đã làm điều này hiện tại trong kịch bản của mình, nhưng tôi nghĩ nó không giống cp -f/ mv -fsử dụng một lệnh duy nhất để thực hiện ghi đè hoạt động, vì vậy tôi đang tìm giải pháp lệnh đơn .
LiuYan 刘
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.