我想创建一个类似“example.txt、example.Txt、example.TxT...所有可能的组合”的文件夹。
答案1
对于具有 csh 样式大括号扩展支持的 shell:
mkdir example.{t,T}{x,X}{t,T}
使用zsh
,您可以将其缩短为:
mkdir example.{tT}{xX}{tT}
如果您启用该braceccl
选项(我不会建议全局启用该选项,因为它与大括号的其他一些用法发生冲突)set -o braceccl
。
如果你想所有可能的字母和数字组合,假设您想要限制为 ascii 字母和数字(而不是 Unicode 中不同脚本的数千个其他字母和数字),使用bash
、zsh
或ksh93
:
mkdir example.{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}
您zsh -o braceccl
可以将其缩短为:
mkdir example.{a-zA-Z0-9}{a-zA-Z0-9}{a-zA-Z0-9}
但由于这是 238328 ((26+26+10) 3 ) 目录,您可能会达到execve()
参数和环境大小的限制。您可以通过使用内置函数(通过执行 )或执行以下操作来解决mkdir
此zsh
问题zmodload zsh/files
:
printf '%s\n' example.{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}} |
xargs -0 mkdir