Cá nhân tôi thấy rằng rất nhiều thời gian vấn đề không phải là Linux nhưng các ứng dụng đang sử dụng trên Linux.
Lấy ví dụ Amarok. Gần đây tôi nhận thấy rằng một số nghệ sĩ tôi đã sao chép từ máy tính Windows của tôi không xuất hiện trong thư viện. Tôi kiểm tra và xác nhận rằng các tập tin đã có và sau đó tôi nhận thấy rằng một số ký tự trong tên thư mục (được đặt tên cho nghệ sĩ) được biểu diễn bằng một hình vuông kỳ lạ hơn là một ký tự thực.
Trong thiết bị đầu cuối vỏ, tên tệp trông lạ hơn:/Music/Albums/Einst $ '\ 374'rzende \ Neubauten là một ví dụ về sự kỳ lạ.
Trong khi các tệp này chắc chắn ở đó, Amarok không thể thấy chúng vì lý do nào đó. Tôi đã có thể sử dụng một số trickery vỏ để đổi tên chúng thành các phiên bản lành mạnh mà tôi có thể sau đó lại tên với ký tự chỉ ASCII bằng cách sử dụng Musicbrainz Picard. Thật không may, Picard cũng không thể mở các tập tin cho đến khi tôi đổi tên chúng, do đó sự cần thiết cho một kịch bản shell. Nhìn chung đây là một khu vực phức tạp và dường như rất khó khăn nếu bạn đang cố gắng đồng bộ hóa một bộ sưu tập nhạc giữa Windows và Linux trong đó một số tên tập tin hoặc thư mục chứa các ký tự funky.
Điều an toàn nhất cần làm là gắn vào tên tệp chỉ có ASCII.
Khá chắc chắn ''/'' ít nhất là không được phép (hoặc sẽ là một PITA hoàn chỉnh nếu nó không được) –
char * str = "foo/bar"; có thể rất tốt đại diện cho một tệp mặc dù – nos