我的系统是
Kernel: 5.3.0-26-generic x86_64 bits: 64 Desktop: Cinnamon 4.4.8 Distro: Linux Mint 19.3 Tricia
触摸版是touch (GNU coreutils) 8.28
当给出以下命令时 -
$ touch #a{1..10}
它说 -
touch: missing file operand
Try 'touch --help' for more information.
这里有什么问题呢?
答案1
(使用set -x
(xtrace
)查看实际运行的命令)
$ set -x
$ touch #a{1..10}
+ touch
touch: missing file operand
Try 'touch --help' for more information.
$ touch a{1..10}
+ touch a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
#
单词开头的井号使该行的其余部分成为注释。你需要引用它:
$ touch "#"a{1..10}
+ touch '#a1' '#a2' '#a3' '#a4' '#a5' '#a6' '#a7' '#a8' '#a9' '#a10'
或者在 Bash 中,您可以使用shopt -u interactive_comments
完全禁用处理注释。
答案2
这里的问题是您想要#
在文件名中包含 ,对于 shell 来说是“注释”指示符。因此,后面的所有文本未逃脱的 #
被忽略,并且您的命令抱怨缺少操作数。
一种可能的解决方案是将文件名的该部分括在引号中,如下所示
~$ touch "#a"{1..10}