Bạn chắc hẳn sẽ bối rối trước mã lỗi "bash:cd:too many đối số" hoặc "zsh:cd:quá nhiều đối số" được tạo trong trình bao lệnh khi bạn nhập cd để vào thư mục bạn muốn.
Xin đừng lo lắng. Bài viết này sẽ giải thích tại sao xảy ra cd:quá nhiều đối số và cách sửa zsh/bash cd:quá nhiều đối số với 5 bản sửa lỗi tiện dụng.
Tại sao xảy ra lỗi Zsh/Bash:cd:too many đối số?
Như thường lệ, trình bao lệnh sẽ mở trực tiếp thư mục khi bạn nhập dòng lệnh cd theo sau là đường dẫn tệp. Nó chấp nhận tên thư mục làm đối số và thay thế thư mục làm việc của môi trường shell hiện tại bằng thư mục đã cho.
Nếu không có đối số nào được đưa ra, lệnh cd hoạt động như thể thư mục có tên trong biến môi trường HOME được chỉ định làm đối số. Nhưng khi bạn nhập thư mục có tên chứa dấu cách hoặc ký tự đặc biệt trong Unix shell, nó xác định chúng là nhiều hơn một đối số. Đó là lý do tại sao nó đưa ra mã lỗi cd:too many đối số trong shell lệnh bash của bạn.
Lưu ý: Nếu đang chạy shell lệnh zsh, bạn có thể gặp lỗi "cd:string not in pwd : " khi bạn cố gắng cd vào một đường dẫn chứa dấu cách.

Một số người thắc mắc liệu Unix Shell có thể truy cập nhiều thư mục cùng lúc hay không thì câu trả lời là hoàn toàn không. Nếu bạn muốn nhập nhiều thư mục hơn, bạn phải chạy lệnh cd từng cái một.
Nếu bài viết này xua tan nghi ngờ của bạn về việc tại sao lại xảy ra quá nhiều tranh cãi thì hãy nhấn nút Chia sẻ bên dưới để giúp được nhiều người hơn nhé!
Cách sửa lỗi bash:cd:too many đối số và zsh:cd:string not in pwd:?
Như đã thảo luận ở trên, Unix Shell nhận ra có nhiều hơn một đối số trong thư mục của bạn với các ký tự và dấu cách đặc biệt nên không thể chuyển sang thư mục đó. Đối mặt với trường hợp như vậy, bạn nên tiếp tục đọc và bài viết này sẽ trình bày cho bạn bốn giải pháp dễ dàng để làm cho cd hoạt động bình thường.
Giải pháp 1:Đặt tên thư mục trong dấu ngoặc kép
Một giải pháp dễ dàng để thực hiện thành công lệnh cd chuyển sang thư mục chuyên biệt là đặt tên thư mục trong dấu ngoặc kép.
Bước 1:Khởi chạy Terminal trên máy tính của bạn.
Bước 2:Nhập cd rồi nhập biểu tượng dấu ngoặc kép.
Bước 3:Nhập đường dẫn file chứa dấu cách hoặc ký tự đặc biệt trong dấu ngoặc kép.
cd "thư mục mới của tôi"
Bước 4:Nhấn nút Enter/Return để chạy dòng lệnh cd và sau đó bạn có thể thấy thư mục thay đổi thành thư mục bạn nhập, nơi bạn được phép thực hiện bất kỳ hành động nào khác trong thư mục mới.

Ngoài ra, bạn có thể bọc toàn bộ đường dẫn đến thư mục hoặc chỉ bọc các thành phần đường dẫn chứa dấu cách hoặc ký tự đặc biệt trong dấu ngoặc kép.
Giải pháp 2:Sử dụng dấu gạch chéo ngược để tránh khoảng trắng
Nếu có bất kỳ khoảng trắng nào trong thư mục, dòng lệnh cd trong Unix Shell sẽ chia chúng thành hai hoặc nhiều đối số. Do đó, dấu gạch chéo ngược xuất hiện ở đây để thoát khỏi khoảng trắng, khiến cho lệnh shell coi các khoảng trắng là ký tự khoảng trắng chứ không phải là dấu phân cách giữa các đối số.
Bước 1:Chạy Terminal trên máy của bạn.
Bước 2:Nhập cd và làm theo thư mục bạn định chuyển.
Bước 3:Thêm dấu gạch chéo ngược vào khoảng trắng của tên thư mục. Xin lưu ý rằng dấu gạch chéo lên có tác dụng như dấu phân cách giữa các thành phần đường dẫn và dấu gạch chéo ngược có chức năng như một bộ công cụ thoát dấu cách.
cd desktop/thư mục\new\của tôi
Bước 4:Nhấn nút Quay lại/Nhập chìa khóa để làm cho cd đưa bạn đến một thư mục mới.

Giải pháp 3:Sử dụng phím Tab để tự động hoàn thành
Trong các chương trình dòng lệnh của Windows, Linux và macOS, bạn có thể tự động hoàn thành các lệnh nhất định bằng phím tab. Ví dụ:trong dấu nhắc lệnh Unix, đây có thể là một cách hay để chuyển sang thư mục khác nhanh hơn.
Bước 1:Mở shell lệnh trên thiết bị của bạn.
Bước 2:Bắt đầu nhập đường dẫn bạn dự định đi.
Bước 3:Nhấn Tab trên bàn phím của bạn để sử dụng chức năng tự động hoàn thành một cách dễ dàng.
Nếu bạn có nhiều thư mục có tên giống nhau, bạn phải nhập một vài ký tự đầu tiên của tên để xác định thư mục bạn muốn cd vào. Nếu tính năng tự động hoàn thành không hoạt động, điều đó cho thấy đường dẫn đã chỉ định không tồn tại.
Giải pháp 4:Mở terminal của bạn trong thư mục đích
Vì bạn muốn mở thư mục trong trình bao lệnh để thực hiện công việc tiếp theo, vui lòng đừng mắc kẹt khi nhập cd. Mở một thiết bị đầu cuối trong thư mục đích cũng có tác dụng tương tự.
Nếu bạn đang chạy Linux, vui lòng đọc hướng dẫn từng bước bên dưới:
Bước 1:Mở thư mục trong explorer.
Bước 2:Nhấp chuột phải và chọn Mở trong Terminal và sau đó bạn có thể quay lại shell lệnh để tiếp tục.
Nếu đang chạy thiết bị macOS, bạn có thể làm theo các bước chi tiết sau:
Bước 1:Mở cửa sổ Finder và điều hướng đến thư mục. Nếu bạn không thấy thanh đường dẫn ở cuối cửa sổ Finder, hãy chọn Xem -> Hiển thị thanh đường dẫn .
Bước 2:Nhấp chuột phải vào thư mục thư mục bạn muốn nhập và chọn New Terminal at Folder .

Sau đó, bạn có thể thấy Terminal chuyển sang thư mục bạn đang làm việc.
Giải pháp 5:Kéo thư mục vào cửa sổ terminal
Nếu tất cả các giải pháp được đề cập ở trên không theo ý thích của bạn, giải pháp cuối cùng đáng thử chỉ đơn giản là kéo thư mục thư mục vào cửa sổ terminal của bạn. Chỉ cần khởi chạy terminal và nhấp chuột trái và kéo thư mục thư mục vào cửa sổ, sau đó bạn sẽ ở đường dẫn thư mục mới.
Nếu bạn đã giải quyết thành công lỗi bash:cd:too many đối số/zsh:cd:string not in pwd:thì tại sao không chia sẻ bài viết này để giúp được nhiều người hơn?
Mẹo bổ sung:cách sử dụng cd tốt nhất?
Nếu bạn là người mới bắt đầu sử dụng shell hoặc có niềm đam mê và tò mò lớn với thiết bị đầu cuối, các dòng lệnh cd khác nhau được thảo luận trong bài viết này chắc chắn sẽ hữu ích. Hãy xem nhanh tại đây:
- cd :cd hoặc cd ~ sẽ luôn đưa người dùng vào thư mục chính của họ.
- cd . :cd . sẽ để người dùng ở cùng thư mục mà họ hiện đang ở (tức là thư mục hiện tại sẽ không thay đổi). Điều này có thể hữu ích nếu mã nội bộ của shell của người dùng không thể xử lý được thư mục mà họ đang được tạo lại. Đang chạy cd . sẽ đặt shell của chúng vào thư mục được tạo lại.
- cd ~tên người dùng :cd ~ username sẽ đưa người dùng vào thư mục chính của tên người dùng.
- thư mục cd (không có /):cd dir sẽ đưa người dùng vào thư mục con; ví dụ:nếu chúng ở trong /usr, gõ cd bin sẽ đặt chúng vào /usr/bin, trong khi cd /bin sẽ đặt chúng vào /bin.
- cd .. :cd.. sẽ di chuyển người dùng lên một thư mục. Vì vậy, nếu chúng là /usr/bin/tmp, cd .. sẽ chuyển chúng sang /usr/bin, trong khi cd ../.. chuyển chúng sang /usr (tức là tăng hai cấp độ). Người dùng cũng có thể sử dụng hướng dẫn này để truy cập các thư mục con. Vì vậy, từ /usr/bin/tmp, họ có thể sử dụng cd ../../local để truy cập /usr/local.
- cd - :cd - sẽ chuyển người dùng về thư mục trước đó. Ví dụ:nếu họ ở trong /usr/bin/tmp và truy cập /etc, họ có thể gõ cd - để quay lại /usr/bin/tmp. Người dùng có thể sử dụng tính năng này để chuyển đổi qua lại giữa hai thư mục mà không cần pushd và popd.
Kết thúc
Lỗi cd:too many đối số không đáng sợ như bạn tưởng tượng vì bài viết này đưa ra 5 giải pháp dễ dàng để làm cho nó biến mất. Bạn có thể thử một hoặc nhiều tùy thích để vào thư mục tương đối bằng cách sử dụng cd. Trên hết, bạn có thể tìm thấy bối cảnh tuyệt vời hướng dẫn bạn cách sử dụng dòng lệnh cd được trình bày rõ hơn trong bài viết này.

Đọc để biết lý do tại sao máy Mac của bạn bị từ chối quyền Zsh và cách khắc phục lỗi từ chối quyền của máy Mac, bao gồm cả việc thay đổi quyền trên máy Mac.