25th
Last updated
Was this helpful?
Last updated
Was this helpful?
不管是指令还是数据,在计算机硬件层面都是二进制。将指令和数据以相同的方式处理,极大地简化了计算机系统的存储器硬件和软件。尤其是用于数据的存储技术同样也适用于程序,如编译器,它能够将那些用易于人类使用的符号写的代码翻译成机器能理解的代码。
参考资料:
《计算机组成与设计:硬件/软件接口 第 5 版》2.5 节 图 2-7
Linux 命令行的括号扩展
括号扩展应该是最强大的一种扩展了。有了它,就可以利用带花括号的模式串生成多个文本字符串。如图一所示,这是最简单的一种括号扩展,「Front-{A,B,C}-Back」叫做模式串,其中「{A,B,C}」是括号表达式,「Front-」是前缀,「-Back」是后缀。
图一中的括号表达式「{A,B,C}」中的逗号是分隔符,表明 A、B、C 是三个单独的字符。表达式中还可以用「..」表示范围,比如「{A..E}」表示 A 到 E 之间的所有字母,包括 A 和 E,使用效果如图二所示。
在 bash 4.0 及以上的版本中,数字前面还可以用 0 填充,如图三所示。
括号表达式也支持倒序输出以及嵌套,如图四所示。
当我们需要批量创建文件或者目录时,使用括号扩展会很方便。比如,我想创建一批命名格式为「yyyy-MM」的目录,用以存放2020年1月到2021年12月期间每个月的日志文件,如果一个目录一个目录地去创建,不仅枯燥繁琐而且容易出错,用括号扩展,一个命令就搞定:mkdir {2020..2021}-{01..12},效果如图五所示。
参考资料:
《The Linux Command Line Fifth Internet Edition》第 7 章-Expansion-Parameter Expansion