このファイルは以下によって生成されました。
ls -Raltr -block-size=M /* > /home/root/all_files.txt
grepを使って複数のコマンドを試しましたが、成功しませんでした。
ベストアンサー1
最も簡単な方法は、-S
withを使用してls
ディレクトリの内容をサイズでソートすることです。ファイルはまだディレクトリごとにグループ化されていますが、これはおそらく望むものではないかもしれません。
ls -RaltrS --block-size=M /*
この方法はここではオプションではないかもしれません。all_files.txt
ファイルが古いか、別のコンピュータで作成された可能性があります。ファイルサイズでファイル名を並べ替えることはまだ可能です。一般的なファイルの場合ls -Raltr --block-size=M
(1つではなく2つのハイフンで始まる注)によって生成された出力行は--block-size
次のとおりです。
-rw-rw-r-- 1 owner group 1M Apr 16 05:37 file.txt
sort
with -h
(人が読める数字(例:1M))と-k 5
テキストの5番目の列(スペースで区切られた)を使用してファイルサイズを指定します。
sort -k 5 -h /home/root/all_files.txt
ls -Raltr --block-size=M /*
/home/root/all_files.txt
ファイルサイズがリストされていない追加の行があるため、保存された出力を並べ替えるのは混乱する可能性があるため、最初に必要なgrep
行だけを取得するには、次のようにします。
grep '^-' /home/root/all_files.txt | sort -k 5 -h
ここで、grep '^-'
ハイフンで始まらない行(たとえば、d
forディレクトリまたはリンクでl
始まる行)は削除されます。
この答えはXubuntu 16.04のGNUツールについてです。 MacOSまたはBSDシステムではテストされていません。