サイズの大きいファイルを全ディレクトリから検索して降順に表示する

問題

サーバのディスク容量が逼迫してきており、処理が重かったり、失敗する。

効率的にファイルを削除したいので、まずはサイズの大きいファイルを全ディレクトリから検索して降順に表示したい。

方法

コマンドでファイルを抽出する。

環境

OS:FreeBSD 9.1

コマンド

find / -size +10M -exec ls -lhS {} +

結果例

% find / -size +10M -exec ls -lhS {} +
find: /aaa/bbb: Permission denied
-rw-r--r--  1 hoge  fuga    22M Jul 17  2018 /xxx/yyy.jpg
-rw-r--r--  1 hoge  fuga    20M Apr  4  2018 /xxx/zzz.pdf
-rw-r--r--  1 foo  bar    10M Apr  4  2018 /ccc.png
%

find

findは、指定ディレクトリから条件に合致するファイルを検索するコマンド。

-size

+○○で指定サイズ以上のファイルを検索できる。

+10Mなら10メガバイト以上のファイルを検索できる。

ファイルサイズの単位はギガバイトのG、メガバイトのMなど指定できる。

-exec

findの結果を別のコマンドに渡して実行できる。

findの結果をコマンドの引数にする場合、{}を書く。

末尾が + の場合、findの結果を引数にまとめて渡す。

末尾を \; とした場合、findの結果をコマンドに1つずつ渡して実行する。

ls

lsはファイルやディレクトリを表示するコマンド。

-l

パーミッションや所有者、ファイルサイズ、タイムスタンプ、パスなど、ファイルの詳細を表示できる。

-h

ファイルサイズをKやMやGなど分かりやすい単位に変換して表示してくれる。

-S

表示をファイルサイズの降順にソートしてくれる。

コメントを残す

メールアドレスが公開されることはありません。