lsまたはファイルグロービングで特定のファイルまたはディレクトリを無視できますか?

lsまたはファイルグロービングで特定のファイルまたはディレクトリを無視できますか?

ls コマンド、ファイル globbing、および grep コマンドの使用に問題があります。次のファイル/ディレクトリツリーを検討してください。

abc/
    def
    ghi.txt
    jkl

def/
    f01
    abc
    abc.txt

ghi.txt

abc/ディレクトリを完全に無視し、他のすべてを報告するとしましょう。ls -lR -Iabc ./def/abc.txtファイルを報告しますが、無視してください/def/abc。ここでも同様ls -lR . | grep -v abcです。 Bashで私がしたいことをする方法はありますか?

ghi.txtそれとも無視したいのですが報告しているとしましょうabc/ghi.txt。 bashでこれを行う方法はありますか?

ベストアンサー1

Bashで拡張ワイルドカードが有効になっている場合は、!(abc)を使用してディレクトリを逆に一致させることができますabc。前任者。与えられた

$ tree
.
├── abc
│   ├── def
│   ├── ghi.txt
│   └── jkl
├── def
│   ├── abc
│   ├── abc.txt
│   └── f01
└── ghi.txt

2 directories, 7 files

そして

$ shopt extglob
extglob         on

それから

$ ls !(abc)
ghi.txt

def:
abc  abc.txt  f01

おすすめ記事