如何创建一个以 ASCII 编码指定的名称的文件?

如何创建一个以 ASCII 编码指定的名称的文件?

我想创建一个名为 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

尽管立即出现迹象表明该文件的字面名称为?,但可能一切都按您预期的方式进行。

相关内容