低コストでサブディレクトリのファイルを開くことはできますか?

低コストでサブディレクトリのファイルを開くことはできますか?

私は時々、次のようなものを使って小さなファイルセットをすばやくナビゲートするためにlessを使います。

less brscan/*/*

:nその後、ファイルを繰り返し使用しました。

次のフォルダがある場合

brscan/
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   ├── postrm
│   └── prerm
├── etc
│   └── opt
├── opt
│   └── brother
└── usr
    ├── bin
    └── lib64

この例では、lessフォルダ内のファイルが選択されています。DEBIAN

DEBIAN
       ├── conffiles
       ├── control
       ├── postinst
       ├── postrm
       └── prerm

ただし、他のサブディレクトリに移動せずにエラーのみが発生します。

brscan/etc はディレクトリです
。 brscan/opt はディレクトリです。
brscan/usr はディレクトリです。

これらのサブディレクトリ内のファイルのページングを減らすことは可能ですか?

私は次のことを考えていました。

find brscan/ | xargs less

しかし、うまくいきません。まだディレクトリを選択しています。

答え1

-not -type d検索結果からディレクトリを省略することを指定します。

find -not -type d | xargs less

またはより良い:

find -not -type d -print0 | xargs -0 less

スペースを含むファイル名をよりよく処理します。

答え2

そしてbashグローバルスターオプションが有効な場合は、次のことができます。

shopt -s globstar
less brscan/**/*

ただし、これにはディレクトリも含まれます。以下を使用して、zsh一般ファイルの拡張子のみをフィルタリングできます。

less brscan/**/*(.)

あまりにも多くのファイルが返された場合、上記の操作はすべて失敗します。安全な方法は以下を使用することですfind

find brscan -type f -exec less {} +

関連情報