lsで印刷されるファイルの数を制限する方法は?

lsで印刷されるファイルの数を制限する方法は?

コマンドにリストされているファイル数を制限する方法はありますかls

私は見たことがあります:

ls | head -4

ただし、インポートまたは実行するにはhead実行が完了するtailのを待つ必要があり、lsディレクトリ内のファイル数が多い場合はかなり時間がかかります。

lsこのコマンドを使用せずに制限コマンドを実行したいと思いますhead

答え1

試してみましたか?

ls -U | head -4

これはソートをスキップする必要があるため、時間がかかることがlsあります。

https://stackoverflow.com/questions/40193/quick-ls-command

答え2

あなたのバージョンにlsファイルをソートしない方法がある場合(例:-UGNU lsの場合、それを書く。オプションがない場合は、lsすべてのファイルを最初に読み取り、名前をソートしてから印刷を開始します。

もう一つの可能​​性はを実行することですfind。これは、名前が見つかると印刷します。

find . -name . -o -prune | head

head(現在進行中の作業のため参考にしてください。ワイヤー、ファイル名に改行文字が含まれていないとします。

答え3

おそらくそれ以外のものが必要ですかls

たとえば、Randal Schwartzは次の記事を書きました。perl大きなディレクトリに使用これには、お客様の要件を満たすものを構築するためのいくつかのヒントが含まれる場合があります。

Randalは、ブログ投稿から両方を印刷する前にすべてのディレクトリエントリを読み取ろうlsとしますが、彼が提案した解決策はそうではないと説明しています。findperl

答え4

関連のない注意事項(「Linuxツリー制限ファイル数制限」を検索するときにこの質問が表示されるため)を使用できますtree --filelimit=10(10個以下のファイルのみを含むディレクトリを削除する)。以下のように素敵に出力されます。

tree --filelimit=10

ディレクトリ構造と内容を一覧表示します。大規模なデータセットを閲覧する場合(最初の構造/階層構造を理解することに興味がある場合)、非常に便利です。

.
├── gps
│   ├── gps.csv
│   └── ins.csv
├── mono_rear [2217 entries exceeds filelimit, not opening dir]
├── mono_rear.timestamps
├── stereo
│   └── centre [3164 entries exceeds filelimit, not opening dir]
└── stereo.timestamps

関連情報