Câu trả lời:
Đó không phải là một lỗi. Trường hợp sử dụng là khi bạn muốn liên kết một tệp với cùng tên cơ sở nhưng trong một thư mục khác:
cd /tmp
ln -s /etc/passwd
ls -l passwd
lrwxrwxrwx 1 xxx xxx 11 Jul 29 09:10 passwd -> /etc/passwd
Đúng là khi bạn làm điều này với một tên tệp trong cùng một thư mục, nó sẽ tạo ra một liên kết đến chính nó mà không làm được gì nhiều!
Điều này hoạt động bất kể bạn sử dụng liên kết tượng trưng hay liên kết cứng.
Cách dễ nhất để tìm ra tất nhiên, là thử nó và xem. Khi không có đối số thứ 2 nào được đưa ra, ln
sẽ tạo một liên kết trong thư mục hiện tại có cùng tên với bản gốc:
$ ln -s /etc
$ ls -l
lrwxrwxrwx 1 terdon terdon 4 Jul 29 16:09 etc -> /etc
Điều này cũng được giải thích trong man ln
:
Ở dạng thứ 2, tạo một liên kết đến TARGET trong thư mục hiện tại.
"Mẫu thứ 2" đề cập đến:
ln [TÙY CHỌN] ... MỤC TIÊU (mẫu thứ 2)
ln -s /path/to/file
là viết tắt củaln -s /path/to/file .
. Giống nhưls
là viết tắt củals .
.