lsがGLOBIGNOREを介して除外されたファイルを表示し続けるのはなぜですか?

lsがGLOBIGNOREを介して除外されたファイルを表示し続けるのはなぜですか?

ファイルはありませechoんが存在しますls -a。なぜ?

bojan@hyperion:~$ touch .ignoramus
bojan@localhost:~$ ls -al | grep ignor
-rw-rw-r--  1 bojan bojan     0 Apr 19 19:05 .ignoramus
bojan@localhost:~$ GLOBIGNORE=".ignoramus";
bojan@localhost:~$ echo .i*
.icons
bojan@localhost:~$ ls -al | grep ignor
-rw-rw-r--  1 bojan bojan     0 Apr 19 19:05 .ignoramus
bojan@localhost:~$ echo $GLOBIGNORE
.ignoramus

人々は-a表示して隠すだけだと言ったが、GLOBIGNOREについては言及しなかった。

   -a, --all
          do not ignore entries starting with .

ls (GNU coreutils) 8.23
GNU bash, version 4.3.42(1)-release (x86_64-pc-linux-gnu)

ベストアンサー1

設定はGLOBIGNORE何の影響も与えずls、気にしないためlsマニュアルにも記載されていません。これは、globモードでいくつかのファイルを省略するbashの機能にすぎません。GLOBIGNORElsGLOBIGNORE

を使用すると、echo .i*bashはファイルを一覧表示するので起動GLOBIGNOREします。を使用すると、ファイルls -als一覧表示されるのでGLOBIGNORE問題ありません。

GNUlsには同様の機能があります。無視したいパターンをコマンドラインオプションとして渡すことができます。

ls -a -I .ignoramus

おすすめ記事