Lsを実行し、特定のファイルを出力から除外したいと思います。
次のコマンドを実行すると、すべてのファイルが1行で取得されます。
$ ls -1
file1
file2
file3
temp
私はそれが示すようにこのコマンドを実行したいと思います
$ ls -1 <insert magic here> temp
file1
file2
file3
ls -I <filename>
-I =ファイル名を無視します。つまり、指定したファイルをリストしません。
複数のファイルを無視するには、各ファイル名の前に-Iを追加します。
ls -I file1 -I file2
名前の拡張子でファイルを無視するには、たとえば次のようにします。
ls -I "*.jpg" -I "*.svg"
-Iを1回使用すると機能しますが、2回使用すると機能しません。例:ls -I *.csv
は機能します。
しかし、ls -I *.csv -I *.txt
は機能せず、代わりにtxtファイルを返します。
-ignoreは私のためにトリックをしました。これは私が必要とし、働いたものです。
ls -lhrt --ignore="*.gz" --ignore="*.1"
古いバックアップログを除外するログフォルダーからファイルが一覧表示されます。
ls --ignore={"*.jpg","*.png","*.svg"}
これはあなたが探している出力を生成すると思います:
ls -1 !(temp)
どうやら 、それが機能するにはshopt -s extglob
が必要です
(有効にしているので、遠い過去のある時期に便利だと思って有効にしたと思います)。
Grepを使用して出力をフィルタリングすることもできます。
ls -1 | grep -v '^temp$'
パイプとフィルターを使用すると、柔軟性が大幅に向上し、他のコマンド/状況に移行できるスキルが得られますが、この特定のケースでは興味がありません。