dej*_*dej 11 filenames inode files
我最近在一台装有 RHEL6 的机器上发现:
ls -lbi
917921 -rw-r-----. 1 alex pivotal 5245 Dec 17 20:36 application.yml
917922 -rw-r-----. 1 alex pivotal 2972 Dec 17 20:36 application11.yml
917939 -rw-r-----. 1 alex pivotal 3047 Dec 17 20:36 application11.yml
917932 -rw-r-----. 1 alex pivotal 2197 Dec 17 20:36 applicationall.yml
Run Code Online (Sandbox Code Playgroud)
我想知道如何实现这样的目标?
cha*_*aos 11
我能够重现这种行为。见例如:
ls -lib
268947 -rw-r--r-- 1 root root 8 Dez 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dez 20 12:33 a??
Run Code Online (Sandbox Code Playgroud)
这是在我的系统上 ( Linux debian 4.9.0-7-amd64 #1 SMP Debian 4.9.110-3+deb9u2 (2018-08-13) x86_64 GNU/Linux)。
我有一个 UTF-8 语言环境,p上面输出中的字符不一样,但看起来很相似。第一行是 a LATIN SMALL LETTER P,第二行是 a CYRILLIC SMALL LETTER ER(参见https://unicode.org/cldr/utility/confusables.jsp?a=p&r=None)。这只是一个例子,它可以是文件名中的每个字符,甚至是点。
当我使用 UTF-8 语言环境时,我的 shell 会提供上述输出。但是,如果我使用的语言环境不包含所有 unicode 字符,例如默认语言环境c,则输出如下所示(您可以通过设置更改本地环境LC_ALL):
LC_ALL=c ls -lib
268947 -rw-r--r-- 1 root root 8 Dec 20 12:32 app
268944 -rw-r--r-- 1 root root 24 Dec 20 12:33 a\321\200\321\200
Run Code Online (Sandbox Code Playgroud)
这是因为CYRILLIC SMALL LETTER ERASCII 中不存在。
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |