Tôi hoàn toàn không hiểu tại sao suy nghĩ về vấn đề đơn giản này lại quá phức tạp - nhưng có lẽ tôi đã hiểu sai câu hỏi. Dù sao: khi tôi cần một chức năng tương tự, tôi đã sử dụng:
ls -lL
Đó là mẹo trong trường hợp của tôi. Từ ls
trang người đàn ông:
-L, --dereference
when showing file information for a symbolic link,
show information for the file the link references
rather than for the link itself
Chẳng hạn, tôi đã tạo cho tôi một /media/stick
lối tắt để truy cập dữ liệu trên thanh USB của mình. ls -l /media/stick
sẽ hiển thị liên kết thực tế, trong khi ls -lL /media/stick
sẽ hiển thị nội dung trên thanh USB.
Sau khi nghiên cứu sâu hơn về sự khác biệt giữa hoạt động bên trong -H
và -L
cuối cùng, tôi đã tìm thấy một bài viết tuyệt vời về vấn đề này trên blog Shallow Suy nghĩ (thậm chí có một số thủ thuật kịch bản shell gọn gàng cho niềm vui của bạn!)
Điều này chỉ ra sự khác biệt tinh tế giữa hai tùy chọn (cách tốt hơn so với hướng dẫn ban đầu!) Như sau:
-H
- chỉ hủy bỏ các liên kết được đề cập rõ ràng trên dòng lệnh
-L
- liên kết dereference ngay cả khi chúng không được đề cập trên dòng lệnh
(Khi hai cái này được sử dụng với các tác vụ đơn giản hàng ngày, nên không có sự khác biệt nào về đầu ra nói chung.)
Bên cạnh đó: Nếu bạn thích ghi nhớ dạng dài ( --option
), có lẽ việc ghi nhớ sẽ ít phức tạp --dereference
hơn so với quái vật quá dài --dereference-command-line-symlink-to-dir
.