web-dev-qa-db-ja.com

ディレクトリ内のファイルの末尾を表示しますか?

どうしても参照するには大きすぎるディレクトリがあります。 Greppingが返す引数リストが長すぎると、ディレクトリを開こうとするとWINSCPがクラッシュします。

ディレクトリ内の最後の200ファイルのみを表示する方法はありますか?ディレクトリを「テーリング」するのは好きですか?

4
blarg

ファイルを除外すると、スペース、改行などの名前に奇妙な文字が含まれなくなります。tail -n 200への単純なパイプで十分です。

サンプルデータ。

$ touch $(seq 300)

今最後の200:

$ ls -l | tail -n 200

200のリストに結果が表示される方法が気に入らない場合があります。そのため、さまざまなスイッチを介してlsが出力する結果の順序を制御できます。たとえば、私が生成したデータは数値です。上記の方法を使用すると、結果は次のように表示されます。

$ ls -l | tail -n 12
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 89
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 9
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 90
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 91
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 92
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 93
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 94
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 95
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 96
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 97
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 98
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 99

しかし、これを真の数値順にしたいので、-vスイッチを使用できます。

$ ls -lv | tail -n 12
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 289
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 290
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 291
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 292
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 293
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 294
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 295
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 296
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 297
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 298
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 299
-rw-rw-r-- 1 saml saml 0 Nov 28 11:50 300

lsの実装には特別な注意を払う必要があります。これは、一部のスイッチに含まれているスイッチと含まれていないスイッチがあるためです。使用可能なスイッチの完全なリストを取得するには、それぞれのシステムのマニュアルページを参照してください。

7
slm

Zshの場合:

print -lr -- *([1,200])          # print the name of the first 200 files in alphabetical order
print -lr -- *(om[1,200])        # print the name of the 200 most recent files
print -lr -- *(oN[1,200])        # print the name of 200 files

oNバリアントはファイルをディレクトリ順に読み取るため、ファイルを並べ替えるのに時間を無駄にしません。

ファイルの内容も確認したい場合:

tail *(oN[1,200])

任意のシェルで、すべてのファイル名を読み取ってソートせずに200ファイルの名前を印刷するには、次のようにします。

ls -lU | head -n 200

最新の200個のファイルの名前を印刷するには:

ls -lt | head -n 200

ファイルを多数のディレクトリに移動する場合は、 複数のディレクトリへのバッチコピーファイルを見つけて、xargsを使用して移動するにはどうすればよいですか? 、-を参照してください。 NIXでファイルをバッチコピー/移動しますか?バッチファイルはファイル名に基づいてディレクトリ構造に移動します