Đây là lệnh cdposix có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
cd - thay đổi thư mục làm việc
SYNOPSIS
cd [−L | −P] [thư mục]
cd −
MÔ TẢ
Sản phẩm cd tiện ích sẽ thay đổi thư mục làm việc của quá trình thực thi shell hiện tại
môi trường (xem Phần 2.12, Shell Thực hiện Môi trường) bằng cách thực hiện như sau
các bước theo thứ tự. (Trong các bước tiếp theo, ký hiệu đường cong đại diện cho một trung gian
giá trị được sử dụng để đơn giản hóa việc mô tả thuật toán được sử dụng bởi cd. Không có
yêu cầu rằng đường cong được hiển thị cho ứng dụng.)
1. Nếu không thư mục toán hạng được đưa ra và TRANG CHỦ biến môi trường trống hoặc
không xác định, hành vi mặc định được xác định theo cách triển khai và không có bước nào tiếp theo
được thực hiện.
2. Nếu không thư mục toán hạng được đưa ra và TRANG CHỦ biến môi trường được đặt thành không
giá trị trống, cd tiện ích sẽ hoạt động như thể thư mục có tên trong TRANG CHỦ
biến môi trường được chỉ định là thư mục toán hạng.
3. Nếu các thư mục toán hạng bắt đầu bằng một ký tự, bộ đường cong đến toán hạng
và chuyển sang bước 7.
4. Nếu thành phần đầu tiên của thư mục toán hạng là dấu chấm hoặc dấu chấm, hãy chuyển sang bước 6.
5. Bắt đầu với tên đường dẫn đầu tiên trong -tên đường dẫn riêng biệt của CDPATH (Xem
phần BIẾN MÔI TRƯỜNG) nếu tên đường dẫn không có giá trị, hãy kiểm tra xem phần nối
của tên đường dẫn đó, một ký tự nếu tên đường dẫn đó không kết thúc bằng một
nhân vật và thư mục toán hạng đặt tên cho một thư mục. Nếu tên đường dẫn là null, hãy kiểm tra
nếu nối dấu chấm, a ký tự và toán hạng đặt tên cho một thư mục.
Trong cả hai trường hợp, nếu chuỗi kết quả đặt tên cho một thư mục hiện có, hãy đặt đường cong đến
chuỗi đó và chuyển sang bước 7. Nếu không, hãy lặp lại bước này với tên đường dẫn tiếp theo
in CDPATH cho đến khi tất cả các tên đường dẫn đã được kiểm tra.
6. Bộ đường cong đến thư mục toán hạng.
7. Nếu các −P tùy chọn có hiệu lực, hãy chuyển sang bước 10. Nếu đường cong không bắt đầu bằng một
ký tự, bộ đường cong vào chuỗi được hình thành bằng cách nối giá trị
of PWD, Một ký tự nếu giá trị của PWD đã không kết thúc với một tính cách,
và đường cong.
8. Các đường cong giá trị sau đó sẽ được chuyển đổi sang dạng chuẩn như sau, xem xét
từng thành phần từ đầu đến cuối, theo thứ tự:
Một. Các thành phần dấu chấm và bất kỳ các ký tự phân biệt chúng với cái tiếp theo
thành phần sẽ bị xóa.
b. Đối với mỗi thành phần dấu chấm, nếu có thành phần đứng trước và nó không
root hay dấu chấm, sau đó:
Tôi. Nếu thành phần trước không đề cập đến (trong bối cảnh tên đường dẫn
độ phân giải với các liên kết tượng trưng theo sau) vào một thư mục, sau đó cd tiện ích
sẽ hiển thị một thông báo lỗi thích hợp và không cần thực hiện thêm bước nào nữa.
Lấy.
ii. Thành phần trước đó, tất cả ký tự ngăn cách trước đó
thành phần từ dot-dot, dot-dot, và tất cả ký tự ngăn cách dấu chấm-
dấu chấm của thành phần sau (nếu có) sẽ bị xóa.
c. Việc triển khai có thể đơn giản hóa hơn nữa đường cong bằng cách loại bỏ bất kỳ dấu vết nào
những nhân vật cũng không dẫn đầu ký tự, thay thế nhiều ký tự không
dẫn đầu liên tiếp các ký tự chỉ có một , và thay thế ba
hoặc nhiều hơn dẫn đầu các ký tự chỉ có một . Nếu do hậu quả của việc này
sự chuẩn hóa, sự đường cong biến là null thì không cần thực hiện thêm bước nào nữa.
9. Nếu đường cong dài hơn {PATH_MAX} byte (bao gồm cả null kết thúc) và
thư mục toán hạng không dài hơn {PATH_MAX} byte (bao gồm cả phần kết thúc
vô giá trị), thì đường cong sẽ được chuyển đổi từ tên đường dẫn tuyệt đối thành tên tương đương
tên đường dẫn tương đối nếu có thể. Việc chuyển đổi này sẽ luôn được coi là có thể thực hiện được nếu
giá trị của PWD, có dấu sau được thêm vào nếu nó chưa có, là một
chuỗi con ban đầu của đường cong. Liệu nó có được coi là có thể thực hiện được theo các điều kiện khác hay không
hoàn cảnh không được xác định. Việc triển khai cũng có thể áp dụng chuyển đổi này nếu
đường cong không dài hơn {PATH_MAX} byte hoặc thư mục toán hạng dài hơn
{PATH_MAX} byte.
10. Các cd tiện ích sau đó sẽ thực hiện các hành động tương đương với chdir() hàm được gọi
với đường cong như con đường lý lẽ. Nếu những hành động này không thành công vì bất kỳ lý do gì, cd
Tiện ích sẽ hiển thị thông báo lỗi thích hợp và phần còn lại của bước này
sẽ không được thi hành. Nếu −P tùy chọn không có hiệu lực, PWD biến môi trường
sẽ được đặt thành giá trị mà đường cong đã bắt đầu bước 9 (tức là trước khi chuyển đổi
đến một tên đường dẫn tương đối). Nếu −P tùy chọn đang có hiệu lực, PWD biến môi trường
sẽ được đặt thành chuỗi sẽ được xuất ra bởi pwd −P. Nếu không đủ
quyền trên thư mục mới hoặc trên bất kỳ thư mục mẹ nào của thư mục đó để xác định
thư mục làm việc hiện tại, giá trị của PWD biến môi trường không được chỉ định.
Nếu trong quá trình thực hiện các bước trên, PWD biến môi trường được thiết lập,
CAO TUỔI Biến môi trường cũng sẽ được đặt thành giá trị của thư mục làm việc cũ
(đó là thư mục làm việc hiện tại ngay trước lệnh gọi tới cd).
LỰA CHỌN
Sản phẩm cd tiện ích sẽ phù hợp với khối lượng Định nghĩa cơ sở của POSIX.1‐2008, Phần 12.2,
Tiện ích cú pháp Hướng dẫn.
Việc triển khai sẽ hỗ trợ các phương án sau:
−L Xử lý dấu chấm toán hạng một cách hợp lý; các thành phần liên kết tượng trưng sẽ không được
được giải quyết trước khi các thành phần dấu chấm được xử lý (xem bước 8. và 9. trong phần
SỰ MIÊU TẢ).
−P Xử lý toán hạng dấu chấm một cách vật lý; các thành phần liên kết tượng trưng sẽ là
được giải quyết trước khi các thành phần dấu chấm được xử lý (xem bước 7. trong
SỰ MIÊU TẢ).
Nếu cả hai −L và −P tùy chọn được chỉ định, tùy chọn cuối cùng trong số này sẽ được sử dụng và tất cả
những người khác bỏ qua. Nếu không −L cũng không −P được chỉ định, toán hạng sẽ được xử lý dấu chấm
một cách hợp lý; xem MÔ TẢ.
TOÁN HẠNG
Các toán hạng sau sẽ được hỗ trợ:
thư mục Tên đường dẫn tuyệt đối hoặc tương đối của thư mục sẽ trở thành đường dẫn mới
thư mục làm việc. Việc giải thích tên đường dẫn tương đối bằng cd phụ thuộc vào
các −L tùy chọn và CDPATH và PWD các biến môi trường. Nếu như thư mục là một
chuỗi trống, kết quả không được chỉ định.
− Khi một được sử dụng làm toán hạng, lệnh này sẽ tương đương với lệnh:
cd "$OLDPWD" && pwd
thay đổi thư mục làm việc trước đó và sau đó ghi tên của nó.
STDIN
Không được sử dụng.
ĐẦU VÀO CÁC TẬP TIN
Không có.
MÔI TRƯỜNG BIẾN
Các biến môi trường sau đây sẽ ảnh hưởng đến việc thực hiện cd:
CDPATH MỘT -danh sách tên đường dẫn riêng biệt tham chiếu đến thư mục. Các cd tiện ích
sẽ sử dụng danh sách này trong nỗ lực thay đổi thư mục, như được mô tả trong
SỰ MIÊU TẢ. Một chuỗi trống thay cho tên đường dẫn thư mục đại diện cho
thư mục hiện tại. Nếu như CDPATH không được thiết lập, nó sẽ được xử lý như thể nó là một
chuỗi rỗng.
TRANG CHỦ Tên của thư mục, được sử dụng khi không có thư mục toán hạng được chỉ định.
NGÔN NGỮ Cung cấp giá trị mặc định cho các biến quốc tế hóa chưa được đặt hoặc
vô giá trị. (Xem tập Định nghĩa cơ bản của POSIX.1‐2008, Phần 8.2,
quốc tế hóa Biến ưu tiên quốc tế hóa
các biến được sử dụng để xác định giá trị của danh mục ngôn ngữ.)
LC_ALL Nếu được đặt thành giá trị chuỗi không trống, hãy ghi đè giá trị của tất cả các chuỗi khác
các biến quốc tế hóa.
LC_CTYPE Xác định ngôn ngữ để diễn giải chuỗi byte dữ liệu văn bản
dưới dạng ký tự (ví dụ: byte đơn trái ngược với ký tự nhiều byte trong
tranh luận).
LC_MESSAGES
Xác định ngôn ngữ sẽ được sử dụng để ảnh hưởng đến định dạng và nội dung của
thông báo chẩn đoán được ghi vào lỗi tiêu chuẩn.
NLSPATH Xác định vị trí của danh mục thư để xử lý LC_MESSAGES.
CAO TUỔI Tên đường dẫn của thư mục làm việc trước đó, được sử dụng bởi cd -.
PWD Biến này phải được đặt như được chỉ định trong MÔ TẢ. Nếu một ứng dụng
đặt hoặc hủy đặt giá trị của PWD, hành vi của cd là không xác định.
BẤT NGỜ SỰ KIỆN
Mặc định.
GIỚI THIỆU
Nếu tên thư mục không trống từ CDPATH được sử dụng, hoặc nếu cd - được sử dụng, tuyệt đối
tên đường dẫn của thư mục làm việc mới sẽ được ghi vào đầu ra tiêu chuẩn như sau:
"% s \ n", <mới thư mục>
Nếu không thì sẽ không có đầu ra.
STDERR
Lỗi chuẩn chỉ được sử dụng cho các thông báo chẩn đoán.
OUTPUT CÁC TẬP TIN
Không có.
ĐA THẾ HỆ MÔ TẢ
Không có.
EXIT TÌNH TRẠNG
Các giá trị thoát sau sẽ được trả về:
0 Thư mục đã được thay đổi thành công.
> 0 Đã xảy ra lỗi.
HẬU QUẢ OF LRI
Thư mục làm việc sẽ không thay đổi.
Sản phẩm tiếp theo phần đang nhiều thông tin.
ỨNG DỤNG SỬ DỤNG
từ cd ảnh hưởng đến môi trường thực thi shell hiện tại, nó luôn được cung cấp dưới dạng shell
tích hợp thường xuyên. Nếu nó được gọi trong một lớp con hoặc môi trường thực thi tiện ích riêng biệt,
chẳng hạn như một trong những điều sau đây:
(CD / Tmp)
không có gì cd
tìm . −thực thi cd {} \;
nó không ảnh hưởng đến thư mục làm việc của môi trường người gọi.
Người dùng phải có quyền thực thi (tìm kiếm) trong thư mục để thay đổi nó.
VÍ DỤ
Mẫu sau có thể được sử dụng để thực hiện xử lý trong thư mục được chỉ định bởi
địa điểm thư viện nào và kết thúc trong thư mục làm việc hiện tại đang được sử dụng trước thư mục đầu tiên cd lệnh
đã được ban hành:
cd địa điểm thư viện nào
if [ $? - Là 0 ]
sau đó
in lôi tin nhắn
ra 1
fi
... do bất cứ điều gì is mong muốn as Dài as các CAO TUỔI môi trường biến
is không sửa đổi
cd -
CƠ SỞ LÝ LUẬN
Việc sử dụng các CDPATH đã được giới thiệu trong shell System V. Công dụng của nó tương tự như
sử dụng các PATH biến trong shell. Shell BSD C đã sử dụng tham số shell đường dẫn cd cho
Mục đích này.
Một phần mở rộng phổ biến khi TRANG CHỦ không xác định là lấy thư mục đăng nhập từ người dùng
cơ sở dữ liệu cho người dùng gọi. Điều này không xảy ra khi triển khai Hệ thống V.
Một số shell lịch sử, chẳng hạn như KornShell, đã thực hiện các hành động đặc biệt khi thư mục
tên chứa thành phần dấu chấm, chọn cha mẹ logic của thư mục, thay vì
hơn thư mục mẹ thực tế; nghĩa là, nó đã tăng lên một cấp về phía '/' trong
tên đường dẫn, ghi nhớ những gì người dùng đã nhập, thay vì thực hiện tương đương:
chdir("..");
Trong shell như vậy, các lệnh sau không nhất thiết tạo ra đầu ra tương đương
cho tất cả các thư mục:
cd .. && ls ls ..
Hành vi này bây giờ là mặc định. Nó không phù hợp với định nghĩa của dấu chấm trong
thực tiễn lịch sử nhất; nghĩa là, mặc dù hành vi này đã có sẵn tùy chọn trong
KornShell, các shell khác trước đây không hỗ trợ chức năng này. Các
tên đường dẫn logic được lưu trữ trong PWD biến môi trường khi cd tiện ích hoàn thành
và giá trị này được sử dụng để xây dựng tên thư mục tiếp theo nếu cd được gọi với −L
tùy chọn.
TƯƠNG LAI HƯỚNG DẪN
Không có.
Sử dụng cdposix trực tuyến bằng dịch vụ onworks.net