Một thư mục (giống như bất kỳ tệp nào) không được xác định bởi tên của nó. Hãy nghĩ về tên như địa chỉ của thư mục . Khi bạn di chuyển thư mục, nó vẫn là cùng một thư mục, giống như nếu bạn chuyển đến một ngôi nhà khác, bạn vẫn là cùng một người. Nếu bạn xóa một thư mục và tạo một thư mục mới cùng tên, thì đó là một thư mục mới, giống như một người nào đó chuyển đến ngôi nhà nơi bạn từng sống không phải là bạn.
Mỗi quá trình có một thư mục làm việc . Các cd
lệnh trong shell thay đổi thư mục làm việc hiện hành của vỏ. Các pwd
lệnh in the¹ đường dẫn đến thư mục làm việc hiện hành.
Khi bạn xóa thư mục A, điều này đã làm là xóa mục nhập cho A trong thư mục mẹ của nó. Bản thân thư mục A vẫn ở trong hệ thống tập tin, nhưng ở trạng thái tách rời, không có tên. Nó chưa bị xóa vì nó được sử dụng bởi một quá trình, cụ thể là lớp vỏ đầu tiên. Khi bạn thay đổi thư mục trong shell đầu tiên, thư mục cuối cùng đã bị xóa. Điều tương tự cũng xảy ra khi một tệp bị xóa trong khi một quá trình vẫn mở: mục nhập thư mục của tệp bị xóa ngay lập tức và chính tệp đó sẽ bị xóa khi ngừng sử dụng.
Tương tự, quan sát những gì xảy ra khi bạn di chuyển các thư mục xung quanh.
mkdir one two
touch one/1 two/2
cd one
ls
Trong một vỏ khác:
mv one tmp
mv two one
mv tmp two
Trong vỏ đầu tiên:
ls
Các tập tin 1
trong thư mục ban đầu được gọi one
và bây giờ được gọi two
. Các tập tin 2
trong thư mục ban đầu được gọi two
và bây giờ được gọi one
.
¹ Chính xác hơn, một con đường, mà có thể không phải là duy nhất nếu liên kết tượng trưng hoặc sự tinh tế khác có liên quan.
cd $PWD
.