使用.bar extenion列出目录中的所有文件,但不扩展.foo.bar扩展名

时间:2012-02-01 12:49:44

标签: linux bash command-line ls

我想使用ls命令列出目录a中包含.bar扩展名但不包含.foo.bar扩展名的所有文件。以下选择我不想要的.foo.bar个文件

ls -l some/path/*.js

必须简单。我只需要一个AND而不是在那里。

3 个答案:

答案 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的另一个原因:)