拡張子のないディレクトリ内のすべてのファイルを一覧表示したい。
例えば:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
ls -someOption
の代わりに使用できるコマンドは何ですか?
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot
これを実行すると、作業ディレクトリ内のすべてのディレクトリの内容が表示されることがわかります。これが必要ない場合は、次を使用します。
ls -d !(*.*)
shopt -s extglob
を~/.bashrc
に入れて、ターミナルを開くたびにアクティブにすることができます。デフォルトのUbuntu ~/.bashrc
(13.04の29行目)にはすでにコメントがあり、コメントを外してこれを有効にできます(およびglobstar)。
シェルのさまざまなグロビングオプションの詳細については、 Gregのwiki を参照してください。これはls
コマンドではなくbashシェルのプロパティであるため、他のコマンドで使用できることに注意してください。
または、次を使用できます
ls --ignore='*.*'
または
ls -I '*.*'
...これは内部ls
オプションですが、extglobは任意のコマンドに適用できるため、私の意見ではより便利です。
ls | grep -v \\.
とls | grep -v "\."
の両方が機能します。