我有一个任务列出所有文件/bin
,/usr/bin
其中包含e
既不在开头也不在结尾的文件。
通配符确实[!e]*e*[!e]
有效。 (测试命令cd /bin & ls -l [!e]*e*[!e]
问题是我必须打印的内容两个目录使用此通配符一命令。我怎么做?
答案1
你可以将其归结为一个命令和一个(类型化)参数:
ls -d {/usr,}/bin/[^e]*e*[^e]
我添加了-d
以防有子目录与模式匹配的情况。这将分阶段扩展到:
/usr/bin/[^e]*e*[^e]
和/bin/[^e]*e*[^e]
展开大括号后。
需要[^e]
除 之外的其他内容e
,后跟*
任何内容,后跟e
,后跟*
任何内容,后跟另一个非e
(隐式后跟任何内容 - 表示文件名的结尾)。