web-dev-qa-db-ja.com

lsの特定のファイルを除外する

Lsを実行し、特定のファイルを出力から除外したいと思います。

次のコマンドを実行すると、すべてのファイルが1行で取得されます。

$ ls -1
file1
file2
file3
temp

私はそれが示すようにこのコマンドを実行したいと思います

$ ls -1 <insert magic here> temp
file1
file2
file3
58
Alice Ryhl
ls -I <filename>

-I =ファイル名を無視します。つまり、指定したファイルをリストしません。

複数のファイルを無視するには、各ファイル名の前に-Iを追加します。

ls -I file1 -I file2

名前の拡張子でファイルを無視するには、たとえば次のようにします。

ls -I "*.jpg" -I "*.svg"
79
Sudheer

-Iを1回使用すると機能しますが、2回使用すると機能しません。例:ls -I *.csvは機能します。

しかし、ls -I *.csv -I *.txtは機能せず、代わりにtxtファイルを返します。

-ignoreは私のためにトリックをしました。これは私が必要とし、働いたものです。

ls -lhrt --ignore="*.gz" --ignore="*.1"

古いバックアップログを除外するログフォルダーからファイルが一覧表示されます。

18
Damodar Bashyal

ls --ignore={"*.jpg","*.png","*.svg"}

6
Kartikey Tanna

これはあなたが探している出力を生成すると思います:

ls -1 !(temp)

どうやら 、それが機能するにはshopt -s extglobが必要です
(有効にしているので、遠い過去のある時期に便利だと思って有効にしたと思います)。

Grepを使用して出力をフィルタリングすることもできます。

ls -1 | grep -v '^temp$'

パイプとフィルターを使用すると、柔軟性が大幅に向上し、他のコマンド/状況に移行できるスキルが得られますが、この特定のケースでは興味がありません。

1
Max Waterman