私のディスクは多くの大容量ファイルでいっぱいで、ディスク上の最新ファイルと最大20個のファイルのみを探しています。どうすればいいですか?
答え1
そしてzsh
:
ls -lrtd -- **/*(D.OL[1,20])
最大20個のファイルを最も古いものから最新のものの順に並べ替えます。
ls -lrtd -- **/*(D.OL[1,20]m-1)
同じですが、過去24時間に最後に変更されたファイルにのみ適用されます。過去の時間に置き換えられましたm-1
。mh-1
ls -lSd -- **/*(D.om[1,20])
最新の20ファイルをサイズ(最小順)で並べ替えます。
ls -lSd -- **/*(D.om[1,20]LM+100)
同じですが、100MiBより大きいファイルにのみ適用されます。
L
glob修飾子は次に適用されます。見かけのサイズ自分ではないファイルのものディスク使用量(報告されているようにdu
)。
答え2
最新の20ファイルを探す:
find . -type f -printf "%T@ %Tc %p\0" | sort -z -nr | head -z -n20
(で適応ここ)
トップ20を探す:
find . -type f -printf "%s %p\0" | sort -z -nr | head -z -n20
またはもっと簡単に
du -ba0 | sort -nr | head -z -n20
ファイルをゼロで区切るのではなく、改行で区切るには、円グラフの| tr '\0' '\n'
最後にatを追加する必要があるかもしれません。ファイル名には改行文字を含めることができるので、これは一般的に良い考えではありません。;これが上記のすべての例でゼロバイト区切り文字を使用する理由です(ファイル名にゼロバイトを含めることはできません)。