私のシェルエンジンはビジーボックス1.31.0またはバッシュ3.2
検索されたファイルのサイズを取得する必要があります。探す注文する。
私は60日以上前に修正されたファイルだけを見つけようとし、すべてのファイルのサイズをインポートしました(MB表記で1行にまとめることをお勧めします)。私が試したことは次のとおりです。
find -type f -mtime +60 -print0 | xargs -0 du -smc
そして
find -type f -mtime +60 -exec du -smc {} \;
前者は60日より古いすべてのファイルを1行ずつ検索します(ここまでは問題ありません)、奇妙なことに、すべての行の間でサイズを数回計算し、最後の行には次のものと一致しない「合計」サイズが表示されます。実際の出力の合計サイズです。こんな感じです。
.....
.....
0 ./FOLDER 2018/Copy #183 of ~$DATABASE OTHERS - NOV.18N.xlsx
42 ./FOLDER 2018/F9C8A618.tmp
0 ./FOLDER 2018/Copy #166 of ~$DATABASE PORTFOLIO NOV.18.xlsx
3275 total
10 ./FOLDER 2018/CFDC6981.tmp
2 ./FOLDER 2018/D5AAF4EB.tmp
0 ./LIFE INSURANCE/Copy #15 of ~$Copy of LIFE INSURANCE CLIENTS.xlsx
12 total
後者の出力は、一致する各ファイルのサイズを1行ずつ計算しますが、全体のサイズは計算しません。
私が探しているもの:
0 ./FOLDER 2018/Copy #183 of ~$DATABASE OTHERS - NOV.18N.xlsx
42 ./FOLDER 2018/F9C8A618.tmp
0 ./FOLDER 2018/Copy #166 of ~$DATABASE PORTFOLIO NOV.18.xlsx
10 ./FOLDER 2018/CFDC6981.tmp
2 ./FOLDER 2018/D5AAF4EB.tmp
0 ./LIFE INSURANCE/Copy #15 of ~$Copy of LIFE INSURANCE CLIENTS.xlsx
54 total
または、すべての行の実際のサイズの結果はありません。
54 total
助けてくれてありがとう。
ベストアンサー1
find
toの出力をパイピングしてフラグをdu
付けてみてください。--files0-from -
find -type f -mtime +60 -print0 | du -shc --files0-from -
最後に合計を提供する必要があります
合計を取得するには、出力を次にパイプしますtail -n1
。
find -type f -mtime +60 -print0 | du -shc --files0-from - | tail -n1
私は実際にこれをbusyboxではなくgnu linuxを使ってテストしたことに言及したいと思います。見ている忙しい箱du
ページでは、このオプションはサポートされていないようです--files0-from
。
上記のコマンドを次のように変更して、busyboxで実行することができます。
find -type f -mtime +60 -print0 | xargs -0 du -ch | tail -n1
上記の方法は、名前にスペースと改行文字が含まれているファイルでも機能しますが、コマンドがあまりにも多くのファイルを見つけた場合、正しく機能しない可能性がありますfind
。下記をご覧くださいコメント。ファイルが多すぎると思われる場合は、このページで別の回答を試してみてください。