Tôi biết rằng đây là 10 năm tuổi, nhưng tôi muốn ném 0,02 đô la rất cố chấp của mình.
Không, hoàn toàn không.
Chúng ta đang nói về một hệ thống Unix. Tham chiếu đến chính thư mục, nó là một nút giống như bất kỳ nút nào khác. Khi đề cập đến các thư mục, nó sẽ không bao giờ có một dấu gạch chéo unescaped trong tên của nó (ref: dirname
, pwd
, ~
, echo $HOME
, echo $PATH
, sản lượng từ ls
, et al).
Khi đề cập đến nội dung của một thư mục, sau đó bạn cần một dấu gạch chéo. Điều đó có nghĩa ls /home/karl/
là thích hợp hơn ls /home/karl
(FTR, tôi hầu như luôn luôn làm sau vì ... à, lười biếng).
Khi sử dụng một biến có chứa thư mục để tạo đường dẫn đầy đủ đến tệp, bạn sẽ luôn mong đợi bao gồm dấu gạch chéo (i., E cp ${HOME}/test ${OTHER_DIR}/
:).
Người ta mong đợi rằng một thư mục không kết thúc bằng một dấu gạch chéo. Mọi kỳ vọng rằng một thư mục kết thúc bằng dấu gạch chéo đều là sai. Do đó, việc thêm dấu gạch chéo vào cuối *_DIR
giá trị của một biến sẽ làm giảm kỳ vọng.
Đối với việc hoàn thành tab, kỳ vọng ở đây là bạn đang đi vào thư mục đó. Do đó, sự hỗ trợ được cung cấp bởi việc hoàn thành tab là đưa bạn vào thư mục đó để bạn có thể đưa ra lựa chọn tiếp theo dựa trên nội dung của nó.
(tham khảo từ các bình luận: Filepath Sai lầm , từ trang Wikipedia Talk:Path_(computing)
. Cảm ơn, john cj )
Cần lưu ý rằng chỉ vì nó sai không có nghĩa là các công cụ / gói / thư viện không bao giờ làm điều đó. Việc những thứ như vậy thêm dấu gạch chéo vào cuối khi không tồn tại là một chuyện quá phổ biến. Do đó, như Bevan và Paul F đều đề xuất, khi sử dụng các công cụ của bên thứ 3, cách tốt nhất là loại bỏ bất kỳ dấu gạch chéo nào có thể tồn tại trong tên thư mục.
Unix Inodes
Inode (nút chỉ mục) là một cấu trúc dữ liệu trong hệ thống tệp kiểu Unix mô tả một đối tượng hệ thống tệp như tệp hoặc thư mục.
- https://en.wikipedia.org/wiki/Inode
Tiêu chuẩn phân cấp hệ thống tệp
Các tiêu chuẩn cho hệ thống tập tin Unix (các Filesystem Hierarchy Standard, AKA đảm bảo VSATTP) cho thấy rõ ràng rằng các thư mục không được coi là có một dấu gạch chéo, mà đúng hơn là nội dung thư mục bắt đầu với một dấu gạch chéo (ngoại lệ duy nhất cho điều này là /
bởi vì chúng ta sẽ không đề cập đến gốc hệ thống tệp bằng cách sử dụng một chuỗi trống ... và người ta sẽ không bao giờ tạo tệp ở đó.)
- http://www.pathname.com/fhs/pub/fhs-2.3.html
- https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard