プレイヤーズ・ハイ

 雑多な日記

2014 年 3 月 4 日の小ネタ

大量のファイルを削除 in Linux

対象のファイル数が数十万におよぶ場合、rm コマンドでファイルを削除しようとすると OS の制限に引っかかってしまい、完了できないことがあります。

$ rm -f ./*
bash: /bin/rm: 引数リストが長すぎます

その場合は以下のようにして削除しましょう。

$ echo ./* | xargs rm -f

ちなみに OS の引数制限は以下のコマンドで確認できます。

$ getconf ARG_MAX
2097152

あるディレクトリー配下のファイル数の数え方 in Linux

$ sudo find /path/to/dir -type f | wc -l

top コマンドで切れてしまうプロセスの状況をロギングする。

ロギングしたいプロセス名 = processname とします。

while true;
    do ps auxww --sort=-pcpu | sed -e "s/^/`date +%T` /" | grep [p]rocessname >> cpu.log;
    sleep 1;
done;