我想创建一个名为 ascii 007 的文件,它是响铃符号,不可打印。我尝试过nano $'\007'
,但这只是创建了一个名为 ?; 的文件cat ?
打印我放置在文件中的测试内容。
那么如何创建一个文件,其名称由 ascii 编码设置,而不是明确拼写出来呢?
答案1
一切可能实际上都按照您的预期进行,但您被两种不同的现象误导了:
ls
和其他一些实用程序?
默认显示不可打印的字符?
是一个匹配单个字符的 glob
这会导致以下行为:
$ echo foo > $'\007'
$ ls
?
$ cat ?
foo
所以看起来我们有一个字面名称为 的文件?
,对吧?实际上,这只是上述两种现象的巧合——该文件仍然被称为^G
:
$ printf '<%q>\n' *
<$'\a'>
$ ls -lb
total 0
-rw-r--r-- 1 chris chris 0 Aug 1 14:20 \a
尽管立即出现迹象表明该文件的字面名称为?
,但可能一切都按您预期的方式进行。