簡単なビジボックスを使用してシステム内の日より古いファイルを見つける

簡単なビジボックスを使用してシステム内の日より古いファイルを見つける

私の開発ユニットで1週間を過ぎたファイルを見つけて削除する必要があります。このコンピュータで使用できるユーティリティの数は制限されています。-mtime find述語は使用できません。この場合、x日より古いすべてのファイルを確認する方法は?

ベストアンサー1

-mtimeはい、標準述部find(反対に反対)ですが、ビルド時に機能が無効になっている単純な-deleteバージョンがあるようです。busyboxFEATURE_FIND_MTIME

ビジーボックスを有効にして再構築できる場合は、次のことができるはずです。

find . -mtime +6 -type f -exec rm -f {} +

またはFEATURE_FIND_DELETE有効な場合:

find . -mtime +6 -type f -delete

そうでない場合は、1週間前に変更時間に設定されたファイルに別のオプションを使用できますfind -newer(有効になっていると仮定)。FEATURE_FIND_NEWER

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

または-newer使用できませんがsh、サポートされている場合:[-nt

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

おすすめ記事