Vì các ký tự có khả năng là ký tự quốc tế, nên chúng có thể xuất hiện dưới dạng mã kiểm soát trong bộ ký tự en_US của bạn, đó là lý do tại sao ls hiển thị chúng dưới dạng dấu hỏi.
Điều này có thể là do sự lựa chọn bí danh của phân phối của bạn theo mặc định trong hồ sơ toàn cầu. Ví dụ:
alias ls='ls -q'
Bạn có thể xem bản phân phối của mình đã thực hiện chưa bằng cách nhập vào trình bao của bạn:
alias ls
Mà sẽ in ra một cái gì đó như sau:
$ alias ls
alias ls='ls --color=auto'
Trang được liên kết bên dưới gợi ý rằng nếu bạn thực hiện "ls -b", bạn sẽ thấy các mã điều khiển bát phân để bạn biết ít nhất những ký tự nào đang được sử dụng.
http://www.arsc.edu/arsc/support/howtos/nonprintingchars/
Giả sử rằng không hoạt động, bạn có một tùy chọn khác cũng được đề cập ở gần phía dưới:
Một công cụ mà tôi không biết đến bây giờ được gọi là OctalDump (trên Debian - / usr / bin / od)
$ ls | od -b
Sẽ cho bạn thấy dạng bát phân của mã kiểm soát.
$ ls | od -c
Sẽ hiển thị cho bạn các ký tự bao gồm bất kỳ khoảng trắng bổ sung ẩn nào có thể ở cuối (lưu ý các khoảng trắng thừa ở cuối trong ví dụ của chúng)
Khi bạn biết nhân vật điều khiển nào đang chơi và liệu có thêm khoảng trắng ẩn nào không, bạn có thể hoàn thiện một cách để cd vào thư mục bằng cách thoát khỏi các ký tự điều khiển. Không, bạn có một vài lựa chọn để đổi tên thư mục.
Trang bên trên cũng thuận tiện, có một phương pháp nhanh và bẩn để loại bỏ các ký tự điều khiển thông qua lệnh mv, mà tôi nghĩ sẽ hoạt động, miễn là bạn KHÔNG thoát khỏi không gian, nhưng KHÔNG thoát khỏi các dấu hỏi (do đó biến chúng thành ký tự đơn ký tự đại diện), và miễn là không có gì khác tồn tại trong thư mục chứa thư mục giả mạo này. Lý do cho những yêu cầu rõ ràng này là do bạn chỉ sử dụng các ký tự đại diện và không gian duy nhất và do đó bạn không muốn ký tự đại diện vô tình khớp với bất kỳ tệp hoặc thư mục nào khác.
Nếu phương pháp trên không hoạt động, bạn gần như có thể chắc chắn sử dụng phương pháp tìm được đề cập bởi các phản hồi khác, theo một cách khác. Thay vì cố gắng cd vào thư mục bằng số inode, đó là những gì bạn nói bạn đã thử, bạn có thể đổi tên nó bằng số inode. Chỉ cần đảm bảo sao chép toàn bộ 3 dòng cho một lệnh đó từ trang bên trên (thay thế phần "tên mong muốn" bằng tên thực tế mà bạn muốn đổi tên thành tuy nhiên).
Khi thư mục được đổi tên, bạn sẽ có thể truy cập nó. Tôi chỉ có thể hy vọng rằng nó cũng không chứa các tệp có mã điều khiển trong tên hoặc bạn sẽ phải rửa và lặp lại cho mọi tệp (và / hoặc thư mục con) trong thư mục bạn vừa đổi tên, tại đó một vòng lặp for sẽ có lẽ nên khôn ngoan khi chỉ đặt tên cho mỗi tệp là một số, bằng cách tăng từ 1 .:-)
cd */
có thể làm việc.*
nên mở rộng một mô tả dễ hiểu của thư mục vàcd
bỏ qua các đối số bổ sung. Một cách khác có thể là sử dụng trình quản lý tệp đồ họa (bao gồm MC dựa trên thiết bị đầu cuối) hoặc bộ điều hướng cây tập tin tích hợp trong ví dụ Vim. Bạn cũng có thể thử nghiệm trực tiếp với-exec
chuyển đổi sangfind, not with
cd` (là một vỏ được tích hợp sẵn) nhưng với ví dụls
và các công cụ khác.