symlink đến thư mục đã tồn tại


12

Có một cách thích hợp để liên kết /home/user/app/publicđến /home/user/public_html, xem xét thực tế là mục tiêu đã tồn tại?

Nếu tôi làm ln -s /home/user/app/public /home/user/public_html, tôi sẽ có /home/user/public_html/public.

Tôi đoán cũng có thể đảo ngược hành động như vậy ln -s /home/user/public_html /home/user/app/public, tuy nhiên tôi không chắc chắn làm thế nào để tránh /home/user/app/public/public_htmllàm kết quả cuối cùng.

Câu trả lời:


13

Hãy hiểu vấn đề của bạn theo cách đúng đắn

Nguồn của bạn là /home/user/public_htmlvà tôi giả sử nó có tập tin trong đó. Và bạn muốn tạo một liên kết đến thư mục này ngay trong /home/user/app/public. Theo cách này sau đó, bạn có thể làm một cái gì đó như ls /home/user/app/publicvà xem các tệp trên đó tồn tại trên /home/user/public_html.

Nếu điều này là chính xác, thì nguồn của bạn là /home/user/public_htmlvà mục tiêu là /home/user/app/public. Lệnh thích hợp là lệnh này:

ln -s /home/user/public_html /home/user/app/public

Chỉ cần đảm bảo rằng đó /home/user/app/publickhông phải là một thư mục hợp lệ hoặc tập tin trước đó nhập lệnh.


3
Đây là một cái cũ, nhưng tôi nghĩ rằng người dùng đã hỏi chính xác cách thực hiện những gì bạn mô tả, nhưng, trong trường hợp / home / user / app / public có thể đã tồn tại (chính xác là lời cảnh báo mà bạn đề cập ở cuối câu trả lời). Vì vậy, IMHO điều này không trả lời câu hỏi ban đầu vì người dùng muốn biết chính xác cách xử lý mục tiêu đã tồn tại (nghĩa là làm thế nào để ghi đè lên nó bằng liên kết tượng trưng, ​​mà không phải xóa nó trước khi tạo liên kết tượng trưng).
jotadepicas

Dùng thử -T tùy chọn :)
Milkmannetje

2

Nếu tôi hiểu chính xác câu hỏi của bạn, bạn muốn biết cách xử lý các mục tiêu đã tồn tại. Nếu đó là trường hợp, có hai tình huống có thể xảy ra.

1) mục tiêu hiện có là một tập tin. Nếu đây là trường hợp, bạn có thể buộc tạo liên kết tượng trưng bằng "-f"

2) mục tiêu hiện có là một thư mục. Nếu đây là trường hợp, thì nó phụ thuộc vào việc thực hiện lệnh ln hiện tại của bạn. Nó có thể có sẵn đối số "-n", điều này khiến symlink đến các thư mục được xử lý đúng cách, thay vì sao chép chúng như bạn nói.

Tham khảo: /unix/207294/create-symlink-overwrite-if-one-exists


Tôi tự hỏi tại sao downvote mà không có nhận xét: stackoverflow.com/help/privileges/vote-down
jotadepicas
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.