Tạo một liên kết tượng trưng từ thư mục này sang thư mục khác với các tên khác nhau?


81

Tôi có hai thư mục, một trong số đó là root máy chủ web của tôi. Tôi muốn liên kết nó với thư mục dự án của tôi để tôi có thể cập nhật mọi thứ với Git.

Nếu tôi cố gắng làm điều này:

ln -s /home/user/project  /var/www/html

Hệ thống tạo một thư mục gọi là dự án trong thư mục html và liên kết nó. Có cách nào để liên kết nó để thư mục 'html' trỏ đến nội dung của dự án không? Họ có phải cùng tên không?

Lưu ý : Tôi cũng cần liên kết một số tập tin ẩn. Tôi có thể làm điều này bằng cách sử dụng ln?

Câu trả lời:


109

Từ man ln:

Theo mặc định, mỗi đích (tên của liên kết mới) sẽ không tồn tại.

Khi bạn đã có một thư mục có tên html, liên kết sẽ được tạo bên trong /var/www/htmlcó tên của mục tiêu tức là project.

Nếu bạn muốn có một symlink /var/www/htmltrỏ đến /home/user/projectthì bạn không nên có thư mục htmlhiện diện trước. Vì vậy, bạn chỉ nên có /var/wwwvà sau đó chạy phần sau sẽ tạo liên kết tượng trưng mong muốn (không làm điều này trừ khi bạn chắc chắn):

ln -s /home/user/project /var/www/html

Đây là một ví dụ:

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

Và có, bạn có thể tạo liên kết tượng trưng của các tập tin ẩn.


13
Tôi đã thử điều này nhưng symlink kết quả là một tệp chứ không phải thư mục
Alex

1
@Alex một liên kết mềm xuất hiện như một tập tin nhưng kết quả là nó hoạt động giống như thư mục mà nó đang trỏ vào.
Chanoch

5
Cũng lưu ý rằng thư mục nguồn không phải là đường dẫn tương đối phải tuyệt đối nên ln -s ./ /var/www/htmlsẽ không hoạt động
Diego Andrés Díaz Espinoza

0

Hãy chắc chắn rằng thư mục html không được tạo dưới /var/www/.

Lệnh sau đó là: ln -s -T /home/user/project /var/www/html

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.