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

Một số người thắc mắc Unix Shell có thể vào nhiều thư mục cùng lúc không, câu trả lời là tuyệt đối không. Nếu bạn muốn vào nhiều thư mục, bạn phải chạy lệnh cd lần lượt từng cái.
Nếu bài viết này giải tỏa thắc mắc của bạn về tại sao too many arguments xảy ra, hãy nhấp nút Chia sẻ bên dưới để giúp thêm người!
Cách khắc phục bash: cd: too many arguments 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ó ký tự đặc biệt và dấu cách, nên nó không chuyển đến thư mục được. Đối mặt trường hợp này, bạn nên đọc tiếp và bài viết sẽ trình bày 4 giải pháp dễ dàng để làm cho cd hoạt động đúng.
Giải pháp 1: Bọc tên thư mục trong dấu ngoặc kép đôi
Một giải pháp dễ dàng để lệnh cd chuyển đến thư mục chuyên biệt thành công là bọc tên thư mục trong dấu ngoặc kép đôi.
- Bước 1: Khởi chạy Terminal trên máy tính.
- Bước 2: Gõ cd rồi gõ dấu ngoặc kép đôi.
- 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 đôi.
cd "my new folder" - Bước 4: Nhấn phím Enter/Return để chạy dòng lệnh cd và bạn sẽ 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 hành động tiếp theo 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/ký tự đặc biệt trong dấu ngoặc kép đôi.
Giải pháp 2: Dùng dấu gạch chéo ngược (backslash) để thoát dấu cách
Nếu có dấu cách trong thư mục, dòng lệnh cd trong Unix Shell sẽ chia chúng thành 2 hay nhiều đối số. Do đó, dấu gạch chéo ngược (backslash) xuất hiện để thoát (escape) các dấu cách, khiến command shell đối xử với dấu cách như ký tự dấu cách thực tế chứ không phải phân tách đối số.
- Bước 1: Chạy Terminal trên máy.
- Bước 2: Gõ cd và theo sau thư mục bạn định chuyển.
- Bước 3: Thêm backslash vào các dấu cách trong tên thư mục. Lưu ý dấu gạch chéo xuôi (forward slash) hoạt động như phân tách thành phần đường dẫn, backslash hoạt động như công cụ thoát dấu cách.
cd desktop/my\ new\ folder- Bước 4: Nhấn phím Return/Enter để cd đưa bạn đến thư mục mới.

Giải pháp 3: Dùng phím Tab để tự động hoàn thành (auto-completion)
Trong chương trình dòng lệnh của Windows, Linux và macOS, bạn có thể tự động hoàn thành lệnh cho trước với phím Tab. Ví dụ, trong Unix command prompt, đây có thể là cách tốt để chuyển thư mục nhanh hơn.
- Bước 1: Mở command shell trên thiết bị.
- Bước 2: Bắt đầu gõ đường dẫn bạn định đi.
- Bước 3: Nhấn phím Tab trên bàn phím để dùng chức năng tự động hoàn thành.
Nếu bạn có vài thư mục tên tương tự, bạn phải gõ vài ký tự đầu của tên để xác định thư mục bạn muốn cd vào. Nếu tự động hoàn thành không hoạt động, nghĩa là đường dẫn chỉ định không tồn tại.
Giải pháp 4: Mở terminal ngay trong thư mục đích
Vì mục tiêu của bạn là mở thư mục trong command shell để làm việc tiếp, đừng mắc kẹt ở việc gõ cd. Mở terminal ngay trong thư mục đích cũng có hiệu quả như nhau.
Nếu bạn chạy Linux, hãy đọc hướng dẫn từng bước dưới:
- Bước 1: Mở thư mục trong explorer (trình quản lý tệp).
- Bước 2: Chuột phải chọn Open in Terminal (Mở trong Terminal) và quay lại command shell để tiếp tục.
Nếu bạn dùng thiết bị macOS, bạn có thể làm theo các bước chi tiết dưới:
- Bước 1: Mở cửa sổ Finder và điều hướng đến thư mục. Nếu không thấy thanh đường dẫn (path bar) ở dưới cửa sổ Finder, chọn View -> Show Path Bar.
- Bước 2: Chuột phải thư mục bạn muốn vào và chọn New Terminal at Folder (Terminal mới tại thư mục).

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

Đọc để biết tại sao Mac bị Zsh permission denied và cách khắc phục lỗi permission denied trên Mac, bao gồm thay đổi quyền hạn trên Mac.