我想使用ls
命令列出目录a中包含.bar
扩展名但不包含.foo.bar
扩展名的所有文件。以下选择我不想要的.foo.bar
个文件
ls -l some/path/*.js
必须简单。我只需要一个AND而不是在那里。
答案 0 :(得分:4)
使用bash
模式匹配的[
路径名扩展,您可以编写:
ls -l some/path/*[!(.foo)].bar
答案 1 :(得分:1)
find -name '*.bar' -not -name '*.foo.bar'
答案 2 :(得分:1)
我知道你在bash中问过如何做到这一点,但在zsh
中你可以做到
ls -l *.bar~*.foo.bar
您将获得未命名为.bar
的所有.foo.bar
个文件。我想这是移动到zsh
的另一个原因:)