Có lẽ họ chỉ trông giống như họ có cùng tên.
Thử:
$ touch Stéphane Stéphane Stéphane\ Stéphane
$ ls -1
Stéphane
Stéphane
Stéphane
Stéphane
Họ trông khá giống nhau.
$ ls -1b
Stéphane
Stéphane
Stéphane
Stéphane\
Tốt hơn một chút. Ký tự khoảng trắng được gắn cờ là \
(mặc dù không phải tất cả các ls
cài đặt đều làm điều đó).
$ LC_ALL=C ls -1b
Ste\314\201phane
St\303\251phane
St\303\251phane\
St\342\200\213\303\251phane
Bây giờ chúng ta đang nói (tất cả các ký tự không phải ASCII được hiển thị dưới dạng giá trị bát phân của các thành phần byte của chúng)
Bạn cũng có thể làm và điều đó hoạt động cho bất kỳ đầu vào nào:
$ ls | LC_ALL=C sed -n l
Ste\314\201phane$
St\303\251phane$
St\342\200\213\303\251phane$
St\303\251phane $
Ở đây, phần cuối của dòng được đánh dấu $
giúp dễ dàng phát hiện ra dấu cách. Tuy nhiên, điều đó sẽ không giúp phát hiện ra một tệp có tênStéphane<newline>Stéphane
$ ls | perl -Mopen=locale -MUnicode::UCD=charinfo -lpe '
s/[^\41-\177]/"<".charinfo(ord$&)->{name}.">"/ge'
Ste<COMBINING ACUTE ACCENT>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane
St<ZERO WIDTH SPACE><LATIN SMALL LETTER E WITH ACUTE>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane<SPACE>
Làm cho nó rõ ràng hơn những gì đã xảy ra.
Xem thêm câu trả lời khác này để biết thêm về chủ đề này.
ls -la
xin vui lòng?