Đường dẫn tương đối trong CMD



Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript

Một hệ thống tập tin lưu trữ và tổ chức các tập tin trên một số hình thức của phương tiện truyền thông, nói chung là một hoặc nhiều ổ đĩa cứng, theo một cách mà chúng có thể dễ dàng truy xuất. Hầu hết các hệ thống tập tin sử dụng ngày nay lưu trữ các tập tin theo cấu trúc dạng cây (hoặc phân cấp). Ở phía trên cùng của cây là một (hoặc nhiều) nút gốc. Dưới nút gốc có những tập tin và thư mục (giống như các thư mục trong Microsoft Windows). Mỗi thư mục có thể chứa các tập tin và thư mục con, rồi mỗi thư mục con này lại có thể chứa các tập tin và thư mục con khác, ..., nói chung là có khả năng đến độ sâu gần như vô hạn.

Đường dẫn là gì?

Hình dưới đây cho thấy một cây thư mục mẫu chứa một nút gốc duy nhất. Microsoft Windows hỗ trợ nhiều nút gốc. Mỗi nút gốc ánh xạ đến một vùng nhớ, chẳng hạn như C:\ hoặc D:\. Hệ điều hành Solaris hỗ trợ một nút gốc duy nhất, biểu hiện bằng ký tự dấu gạch chéo, '/'.


Ví dụ về cấu trúc thư mục

Một tập tin được xác định bằng đường dẫn của nó thông qua các hệ thống tập tin, bắt đầu từ nút gốc. Ví dụ, tập tin statusReport trong hình trên được mô tả như sau trong hệ điều hành Solaris:

/Home/sally/statusReport

Trong Microsoft Windows, statusReport được mô tả như sau:

C:\home\sally\statusReport

Ký tự được sử dụng để tách các tên thư mục (cũng được gọi là dấu phân cách) là xác định cho các hệ thống tập tin như sau: Hệ điều hành Solaris sử dụng dấu gạch chéo (/), và Microsoft Windows sử dụng các dấu gạch chéo dấu chéo ngược (\).

Tương đối hay tuyệt đối

Mỗi đường dẫn có thể là tương đối hoặc tuyệt đối. Một đường dẫn tuyệt đối luôn chứa nút gốc và danh sách thư mục hoàn chỉnh cần thiết để xác định vị trí các tập tin. Ví dụ, /home/sally/statusReport là một đường dẫn tuyệt đối. Tất cả các thông tin cần thiết để xác định vị trí các tập tin được chứa trong chuỗi đường dẫn.

Một đường dẫn tương đối cần phải được kết hợp với đường dẫn khác để truy cập vào một tập tin. Ví dụ, joe/foo là một đường dẫn tương đối. Nếu không có thêm thông tin, chương trình không thể xác định chính xác vị trí thư mục joe/foo trong hệ thống tập tin.

Liên kết symbolic

Các đối tượng hệ thống tập tin phổ biến nhất là các thư mục và tập tin, và ta đã quen thuộc đối với các đối tượng này. Nhưng một số hệ thống tập tin cũng bao gồm các liên kết tượng trưng. Một liên kết tượng trưng cũng được gọi symlink hoặc soft link (liên kết mềm).

Liên kết tượng trưng là một tập tin đặc biệt được dùng như là một tham chiếu đến tập tin khác. Đối với hầu hết các phần, liên kết tượng trưng là trong suốt trong các ứng dụng, và các hoạt động trên các liên kết tượng trưng được tự động chuyển đến đích của liên kết. (Các tập tin hoặc thư mục được chỉ để được gọi là đích của liên kết). Ngoại lệ sẽ xảy ra khi một liên kết tượng trưng được xóa hoặc đổi tên trong trường hợp bản thân liên kết bị xóa hoặc đổi tên và không phải là mục tiêu của liên kết.

Trong hình dưới đây, logfile dường như là một tập tin mà người dùng nhìn thấy, nhưng nó thực sự là một liên kết đến thư mục /logs/HomeLogFile. HomeLogFile là đích của liên kết.


Ví dụ về một liên kết tượng trưng.

Liên kết tượng trưng thường là trong suốt đối với người sử dụng. Việc đọc hoặc ghi cho một liên kết tượng trưng là giống như việc đọc hoặc ghi cho bất kỳ tập tin hoặc thư mục nào khác.

Cụm từ giải quyết một liên kết có nghĩa là để thay thế vị trí thực sự trong hệ thống tập tin cho các liên kết tượng trưng. Trong ví dụ, việc giải quyết logfile sẽ sinh ra dir/logs/HomeLogFile.

Trong kịch bản thực tế, hầu hết các hệ thống tập tin sử dụng tự do các liên kết tượng trưng. Đôi khi, một liên kết tượng trưng được tạo ra ẩu có thể gây ra một tham chiếu vòng tròn. Một tham chiếu vòng tròn xảy ra khi mục tiêu của một liên kết lại trỏ vào liên kết ban đầu. Các tham chiếu vòng tròn có thể là gián tiếp: thư mục a trỏ tới thư mục b, b trỏ vào thư mục c, trong c có một thư mục con trỏ đến thư mục a. Các tham chiếu vòng tròn có thể gây ra tàn phá khi một chương trình đệ quy đi bộ qua một cấu trúc thư mục. Tuy nhiên, kịch bản này đã được tính toán và sẽ không gây ra việc lặp vô hạn cho chương trình của bạn.

Đường dẫn tương đối trong CMD

Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript
« Prev: Java: Object Stream
» Next: Java: Lớp Path