回答:
-Iを1回使用すると機能しますが、2回使用すると機能しません。例:
ls -I *.csv
動作します。
しかし、
ls -I *.csv -I *.txt
機能せず、代わりにtxtファイルを返します。
--ignoreは私のためにトリックをしました。これは私が必要とし、働いたものです。
ls -lhrt --ignore="*.gz" --ignore="*.1"
古いバックアップログを除外するログフォルダーからファイルが一覧表示されます。
ls -I '*.txt'
ます。引用符なしで動作しない理由は、シェル拡張のためです。つまり、すべてのcsvファイルを除外するのではなくリストするようにシェルに指示しているためです。実際に起こっているのは、展開後の最初の.csvファイルと.1ファイルを無視するが、残りをリストすることです
ls --ignore={"*.jpg","*.png","*.svg"}
--ignore
オプションを取得するだけです。また、使用している可能性が--ignore="*."{jpg,png,svg}
これはあなたが探している出力を生成すると思います:
ls -1 !(temp)
どうやら、あなたshopt -s extglob
はそれが機能する必要があります
(私はそれを有効にしていますので、遠い過去のある時期に私はそれを便利で有効にしたと思います)。
grepを使用して出力をフィルタリングすることもできます。
ls -1 | grep -v '^temp$'
パイプとフィルターを使用すると、柔軟性が大幅に向上し、他のコマンドや状況に移行できるスキルが得られますが、この特定のケースでは興味がないかもしれません。
--ignore
、グロブパターンに拡張することができます。たとえば、ls --ignore="file?"
またはls --ignore="file*"