「ls -l *」で例外を追加することは可能ですか?

「ls -l *」で例外を追加することは可能ですか?

たとえば、すべてのディレクトリの内容を印刷するなどの操作を行うことは可能ですか。また、たとえば、 を除くすべてのファイルを印刷するために、ls -l *例外を追加します。test.cpptest.cpp

答え1

有効にしている場合は、glob を使用して実行できますextglob。次のように有効にできます。

shopt -s extglob

次のように使用できます:

ls -l !(test.cpp)

また、他の方法でも使用できます。

ls -l !(*.jpg) # list all files that don't have .jpg extensions

これはシェル グロブなので、他のコマンドでも使用できます。ただし、副作用として、サブディレクトリが明示的にリストされるため、サブディレクトリlsもリストされます。ただし、これは次のように簡単に処理できます。

ls -ld !(test.cpp)

答え2

これを行うための古典的な(素朴な?)方法は

  ls -l * | grep -v test.cpp

しかし、ラマーがコメントしたように、GNUにはls特定のファイル名を無視するオプションがある。

  ls -l -I test.cpp *

注記はls -l *現在のディレクトリ内のファイルを一覧表示しますおよび第1レベルのサブディレクトリ内のファイルls -l*

関連情報